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.

Relaterade artiklar