【问题标题】:How to run Jest-Puppeteer test in multiple files如何在多个文件中运行 Jest-Puppeteer 测试
【发布时间】:2018-12-28 16:44:31
【问题描述】:

我正在使用 jest-puppeteer 来运行我的网络测试。如果我在一个文件中运行所有定义的测试,则一切正常。

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 statement') 作为第一步,一切都会再次运行。这就是为什么我认为这可能是一个时间问题。我按顺序运行测试,即jest --runInBand

谁能帮忙?

【问题讨论】:

    标签: jestjs puppeteer e2e-testing web-testing webtest


    【解决方案1】:

    正如你所说,我同意问题在于顺序异步,正如 Patrick Hulce 回答中的that github bugreport 中所述:

    FWIW 我也遇到了这个问题并导致了这个问题。只发生在 异步测试超时但基础操作继续时的 CI 直到测试套件完成之后(我猜是回调 试图添加期望的结果)。我永远无法做到 虽然发生在本地。

    所以您的错误可能在“//我的测试步骤”中,您在测试中操作了一些您可以/需要在运行异步进程之前操作的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-15
      • 1970-01-01
      • 1970-01-01
      • 2015-03-23
      • 2017-07-26
      • 2015-06-20
      • 2020-11-18
      相关资源
      最近更新 更多