我遇到了一个问题,那就是在Jest中没有内置的方法来重试不稳定的测试。我使用的是Jest + TS + Puppeteer。有没有人有同样的问题或可能的解决方案\建议?我试着实现了这个:link,但是没有成功。
jest-重试对我不起作用,因为我创建了用户并做了很多操作,如果测试失败-重试使用相同的cookie在相同的铬标签中重新启动测试等。
代码示例:
const it = require('jest-retries');
describe('any tests', () => {
beforeEach(async () => {
await page.emulate(devices['Galaxy S5']);
await page.goto(newSearchUrl, { waitUntil: 'networkidle2' });
});
it('dummy test', 2, async () => {
await userSignup(); // custom wrapper for signup
await checkGraphqlSuccess('success dumb event');
const iconHeader = await waitForElementVisible(favoriteBtnHeader);
await iconHeader.click();
const number = await waitForElementVisible(number1);
const getNumber1 = await page.evaluate(obj => {
return obj.getAttribute('data-id');
}, number);
expect(azaza1).toEqual(getNumber1);
});
afterAll(async () => {
dumpEvents(fileName);
});
});发布于 2020-02-09 02:05:18
你有没有试过安装jest-circus?
使用此测试运行器,您可以执行以下操作:
//my_perfect_test.js
jest.retryTimes(3) //set maximum retries number
describe('Test', () => {
test('Test_Test', async () => {
//test code
...
})
})最大限度地减少测试的碎片性。
发布于 2021-07-14 21:45:43
从Jest v27开始,jest-circus现在是默认的测试运行程序。所以above solution不需要额外的配置就可以工作。
https://stackoverflow.com/questions/59413521
复制相似问题