Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

After hook is NOT working and browser does NOT close when more than 1 Feature sections exists in test file

Open
#4,696 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Quiet
Tech stack
javascript, node.js
Domain
testing

Research direction

Start with the tests matched by tests/*_tests.ts and the shown CodeceptJS configuration, focusing on the interaction between multiple Feature sections, restart: true, and the Puppeteer helper. Reproduce the issue with more than one Feature section and trace whether After and AfterSuite run. Done means hooks execute and browser pages close after each test without accumulating processes.

Written by the indexing model from the issue text.

Description

stale
What are you trying to achieve?

When there are more than 1 Feature sections in the test file:

  • the browser/page does NOT close after each test, so at the end I have many browsers opened, which slowing down my system.
  • the After and AfterSuite hooks are NOT working at all (are NOT called).

Tests behave (passed/failed) normally and the next test is conducted on newly opened browser, but After and AfterSuite hooks are NOT even called after test(s). Additional hooks / teardown implemented in the codecept.conf do NOT help. Any suggestion?

What do you get instead?

Tests behave (passed/failed) normally and the next test is conducted on newly opened browser, but After and AfterSuite hooks are NOT even called after test(s). Additional hooks / teardown implemented in the codecept.conf do NOT help, so at the end I have many browsers/threads opened, which slowing down my system.

Details
  • CodeceptJS version: 3.6.10
  • NodeJS Version: 20.15.0
  • Operating System: Win11 Pro
  • puppeteer version: 23.11.1
  • Configuration file:
/// <reference types='./steps' />
import { testConfig } from "./testConfig";

const fullScreen: string = "false";

export const config: CodeceptJS.MainConfig = {
  tests: "./tests/*_tests.ts",
  timeout: 60,
  output: "./output",

  helpers: {
    REST: {},
    Puppeteer: {
      url: testUrl,
      browser: "chrome",
      show: true,
      fullPageScreenshots: true,
      uniqueScreenshotNames: false,
      waitForNavigation: ["load", "domcontentloaded"] as any,
      pressKeyDelay: 7,
      waitForTimeout: 30000,
      restart: true,
      windowSize: screenResolution.join("x") as any,
      chrome: {
        args: ["--no-sandbox", `--lang=${lang}`, fullScreen === "true" ? "--start-fullscreen" : ""],
      },
    },
    CustomHelper: {
      require: "./helpers/customHelper.ts",
    },
    AssertWrapper: {
      require: "codeceptjs-assert",
    },
    ResembleHelper: {
      require: "codeceptjs-resemblehelper",
      screenshotFolder: "./output/",
      baseFolder: "./screenshots/base/",
      diffFolder: "./screenshots/diff/",
      prepareBaseImage: false,
      tolerance: 2,
      needsSameDimension: true,
    },
  },
};
Dominant language
JavaScript
Stars
4.2k
Forks
756
Avg merge
2d 9h
Merged PRs (30d)
16

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from codeceptjs/CodeceptJS

All issues in codeceptjs/CodeceptJS

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.