typescript - Något sätt att göra omförsök för opålitliga tester med jest-puppeteer?
Jag ställdes inför ett problem, att det inte finns något inbyggt sätt att försöka om ostabila tester i Jest. Jag använder Jest + TS + Puppeteer. Har någon samma problem eller möjliga lösningar/förslag? Jag försökte implementera denna: länk, men utan framgång.
jest-retries fungerar inte för mig, eftersom jag skapade en användare och gjorde många manipulationer, om testet misslyckades - startade retries testet igen i samma Chromium-flik med samma cookies osv. Tack på förhand!
Kodexempel :
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);
});
});
Svar #1
Har du försökt installera jest-circus?
Med denna testrunner kunde du göra följande:
//my_perfect_test.js
jest.retryTimes(3) //set maximum retries number
describe('Test', () => {
test('Test_Test', async () => {
//test code
...
})
})
för att minimera opålitligheten i dina tester.
Svar #2
Från och med Jest v27 är jest-circus nu standardtestköraren. Så lösningen ovan kommer att fungera utan extra konfiguration.
