运行 一起(同步)时 Jest Puppeteer 测试失败
Jest Puppeteer tests fail when running together (synchronously)
使用的技术:
- npm
- 开玩笑
- 搞笑木偶师
如果我 运行 我的测试一个接一个地通过
$ npm test test/file.to.test.js
...
Test Suites: 1 passed, 1 total
Tests: 6 passed, 6 total
但是,如果我 运行 将我的测试作为一个整体进行,那么错误就会猖獗
$ npm test
...
Test Suites: 6 failed, 6 total
Tests: 88 failed, 17 todo, 4 passed, 109 total
问题
我的情况似乎与某种 jest/puppeteer 缓存或 chrome 会话共享有关。无论如何,我该如何进一步调试?
额外
在写这个问题时,我发现使用参数 --runInBand
(来自 )可以使所有测试都通过,但它们是 运行 顺序的,这使得测试需要更长的时间- 通常开玩笑并行测试 运行。
设置
package.json
"test": "set NODE_ENV=test && jest --runInBand --detectOpenHandles --forceExit",
开玩笑-puppeteer.config.js
module.exports = {
launch: {
devtools: true, // allows for use of 'debugger;' in tests
// executablePath: '/usr/bin/chromium-browser',
headless: true,
defaultViewport: {
width: 1024,
height: 768,
//isMobile: true,
//hasTouch: true,
},
ignoreDefaultArgs: ['--disable-extensions'],
args: [
'--enable-font-antialiasing',
'--font-render-hinting=medium',
'--disable-gpu',
'--disable-dev-shm-usage',
'--disable-setuid-sandbox',
'--no-first-run',
'--no-sandbox',
'--no-zygote',
'--single-process',
"--renderer",
"--no-service-autorun",
"--no-experiments",
"--no-default-browser-check",
"--disable-extensions",
]
},
// server: {
// command: "npm run serve",
// port: 9000,
// launchTimeout: 180000
// },
browser: 'chromium',
browserContext: 'default'
};
我读了很多这方面的资料,虽然我不确定为什么会发生这种情况,但有一些非常无缝的解决方法
使用的技术:
- npm
- 开玩笑
- 搞笑木偶师
如果我 运行 我的测试一个接一个地通过
$ npm test test/file.to.test.js
...
Test Suites: 1 passed, 1 total
Tests: 6 passed, 6 total
但是,如果我 运行 将我的测试作为一个整体进行,那么错误就会猖獗
$ npm test
...
Test Suites: 6 failed, 6 total
Tests: 88 failed, 17 todo, 4 passed, 109 total
问题
我的情况似乎与某种 jest/puppeteer 缓存或 chrome 会话共享有关。无论如何,我该如何进一步调试?
额外
在写这个问题时,我发现使用参数 --runInBand
(来自
设置
package.json
"test": "set NODE_ENV=test && jest --runInBand --detectOpenHandles --forceExit",
开玩笑-puppeteer.config.js
module.exports = {
launch: {
devtools: true, // allows for use of 'debugger;' in tests
// executablePath: '/usr/bin/chromium-browser',
headless: true,
defaultViewport: {
width: 1024,
height: 768,
//isMobile: true,
//hasTouch: true,
},
ignoreDefaultArgs: ['--disable-extensions'],
args: [
'--enable-font-antialiasing',
'--font-render-hinting=medium',
'--disable-gpu',
'--disable-dev-shm-usage',
'--disable-setuid-sandbox',
'--no-first-run',
'--no-sandbox',
'--no-zygote',
'--single-process',
"--renderer",
"--no-service-autorun",
"--no-experiments",
"--no-default-browser-check",
"--disable-extensions",
]
},
// server: {
// command: "npm run serve",
// port: 9000,
// launchTimeout: 180000
// },
browser: 'chromium',
browserContext: 'default'
};
我读了很多这方面的资料,虽然我不确定为什么会发生这种情况,但有一些非常无缝的解决方法