如何在多个文件中运行 Jest-Puppeteer 测试
Posted
技术标签:
【中文标题】如何在多个文件中运行 Jest-Puppeteer 测试【英文标题】:How to run Jest-Puppeteer test in multiple files 【发布时间】: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
谁能帮忙?
【问题讨论】:
【参考方案1】:正如你所说,我同意问题在于顺序异步,正如 Patrick Hulce 回答中的that github bugreport 中所述:
FWIW 我也遇到了这个问题并导致了这个问题。只发生在 异步测试超时但基础操作继续时的 CI 直到测试套件完成之后(我猜是回调 试图添加期望的结果)。我永远无法做到 虽然发生在本地。
所以您的错误可能在“//我的测试步骤”中,您在测试中操作了一些您可以/需要在运行异步进程之前操作的东西。
【讨论】:
以上是关于如何在多个文件中运行 Jest-Puppeteer 测试的主要内容,如果未能解决你的问题,请参考以下文章