It takes a long time to finish the process after testing
Hydrair opened this issue · comments
Michael Kainz commented
What are you trying to achieve?
I'm trying to run a test.
What do you get instead?
After running the test, codecept takes a long time to quit the process. It does not matter if the test succeeds or fails. After the test runs are finished, it just stays at OK in ...
or finished teardown hook
with --verbose
. This happens randomly, sometimes finishing fast, but more often lasting up to several minutes.
Provide console output if related. Use
--verbose
mode for more details.
✔ OK in 12663ms
--- STARTED "after each" hook: After for "Scenario1" ---
Emitted | provisioning.user.removed ([object Object])
Emitted | provisioning.user.removed ([object Object])
--- ENDED "after each" hook: After for "Scenario1" ---
OK | 1 passed // 16s
started teardown hook
Emitted | provisioning.context.removed ([object Object])
finished teardown hook
✨ Done in 316.64s.
Provide test source code if related
Happens randomly to all tests.
Details
- CodeceptJS version: v3.5.3
- NodeJS Version: v21.6.2
- Operating System: Sonoma 14.2.1
- puppeteer version: 20.8.2
- Configuration file:
(cut sensitive data)
module.exports.config = {
tests: './tests/**/*_test.js',
timeout: 90,
output: './output/',
helpers: {
Puppeteer: {
url: process.env.LAUNCH_URL,
smartWait: 1000,
waitForTimeout: Number(process.env.WAIT_TIMEOUT),
browser: 'chrome',
restart: true,
windowSize: '1280x1024',
uniqueScreenshotNames: true,
timeouts: {
script: 5000
},
chrome: {
executablePath: process.env.CHROME_BIN,
args: [
'--disable-crash-reporter',
'--disable-dev-shm-usage',
'--disable-features=IsolateOrigins',
'--disable-gpu',
'--disable-notifications', // to disable native notification window on Mac OS,
'--disable-print-preview',
'--disable-setuid-sandbox',
'--disable-site-isolation-trials',
'--disable-web-security',
process.env.HEADLESS === 'false' ? '' : `--headless=${process.env.HEADLESS}`,
'--no-first-run',
'--no-sandbox',
'--no-zygote',
`--unsafely-treat-insecure-origin-as-secure=${process.env.LAUNCH_URL}`
].concat((process.env.CHROME_ARGS || '').split(' '))
},
show: process.env.HEADLESS === 'false' || 'new',
waitForNavigation: ['domcontentloaded', 'networkidle0']
},
MockRequestHelper: {
require: '@codeceptjs/mock-request'
}
},
async teardown () {
const { contexts } = global.inject()
for (const ctx of contexts.filter(ctx => ctx.id > 100)) {
if (ctx.id !== 10) await ctx.remove().catch(e => console.error(e.message))
}
},
}