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



我正在使用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
});
});

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

有人能帮忙吗?

正如你所说,我同意问题是异步顺序,正如Patrick Hulce中的github错误报告中所解释的那样:

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

所以你的错误可能在"//my测试步骤"中,在运行异步进程之前,你在两个测试中都操作了一些你可以/需要操作的东西。

最新更新