Jestjs Jest Puppeter测试在一起运行时失败(同步)

Jestjs Jest Puppeter测试在一起运行时失败(同步),jestjs,jest-puppeteer,Jestjs,Jest Puppeteer,使用的技术: 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, 1

使用的技术:

  • 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
问题

我的情况似乎与某种玩笑/玩偶缓存或chrome会话共享有关。Regarless,如何进一步调试

额外的

在写这个问题时,我发现使用参数
--runInBand
(from)可以使所有测试都通过,但它们是按顺序运行的,这会使测试花费更长的时间,通常情况下,jest测试是并行运行的

设置

package.json

jest-puppeter.config.js


我读了很多关于这方面的书,虽然我不太清楚为什么会发生这种情况,但有一些非常无缝的解决方法


或者

确切的失败原因是什么?为什么你认为它们可能是由会话共享引起的?我认为这可能是服务器处理同时请求的方式。所有这些chrome参数都是故意添加的吗?@Estuslaks按顺序回答问题:失败的原因充其量只是随机的;我更多的是参考浏览器页面状态,而不是实际的浏览器会话(我这边的单词用法很差);这个项目跨越了Windows10、Windows10WSL(Ubuntu18.04)、OSX10.14、10.15,所以到目前为止,这是所有适用于每个操作系统安排的参数,而不是在任何给定操作系统上中断的参数。
"test": "set NODE_ENV=test && jest --runInBand --detectOpenHandles --forceExit",
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'
};