Jestjs 如何在多个文件中运行Jest Puppeter测试

Jestjs 如何在多个文件中运行Jest Puppeter测试,jestjs,puppeteer,e2e-testing,web-testing,webtest,Jestjs,Puppeteer,E2e Testing,Web Testing,Webtest,我正在使用jest Puppeter运行我的网络测试。如果我在一个文件中运行所有定义的测试,那么一切都可以完美运行 describe('user', () => { jest.setTimeout(12000); beforeEach(async () => { await page.setViewport({width: 1200, height: 2000}); await page.goTo('http://localhost

我正在使用jest Puppeter运行我的网络测试。如果我在一个文件中运行所有定义的测试,那么一切都可以完美运行

describe('user', () => {

    jest.setTimeout(12000);

    beforeEach(async () => {
        await page.setViewport({width: 1200, height: 2000});
        await page.goTo('http://localhost:3000');
    });

    it('test 1', async () => {
        //my test steps
    });

    it('test 2', async () => {
        //my test steps
    });

});
但是,如果我在它自己的文件中运行每个测试,我会得到一个错误

UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'addExpectationResult' of undefined
文件1

describe('user', () => {

    jest.setTimeout(12000);

    beforeEach(async () => {
        await page.setViewport({width: 1200, height: 2000});
        await page.goTo('http://localhost:3000');
    });

    it('test 1', async () => {
        //my test steps
    });

});
文件2

describe('user', () => {

    jest.setTimeout(12000);

    beforeEach(async () => {
        await page.setViewport({width: 1200, height: 2000});
        await page.goTo('http://localhost:3000');
    });

    it('test 2', async () => {
        //my test steps
    });

});
有趣的是,如果我在test2中添加一个console.log(“some语句”)作为第一步,那么一切都会重新开始。这就是为什么我认为这可能是一个时间问题。我正在按顺序运行测试,即,
jest--runInBand


有人能帮忙吗?

正如您所说,我同意问题在于异步顺序,如Patrick Hulce回答中所述:

FWIW我也遇到了这个问题,并导致了这个问题。只发生在 异步测试超时但基础操作继续时的CI 直到测试套件完成(我猜是回调) 尝试添加预期的结果)。我永远也不能把它弄到手 不过,这是在当地发生的

因此,您的错误可能在“//my test steps”中,在该步骤中,您可以在运行异步进程之前操作测试中的某些内容