typescript - Utför anpassade åtgärder vid omförsök av Cypress-test
Jag använder omförsök i mitt Cypress-test. Varje gång ett test körs om vill jag utföra en åtgärd (t.ex. logga detaljer om felet i en fil).
Jag tänkte att command:retry från händelsekatalogen kanske kunde vara användbart, men jag är inte säker på vad parametern betyder och hur jag kan använda den.
Svar #1
Du kanske tycker att command:retry är lite för detaljerat, prova on fail-händelsen.
Cypress.on('fail', (error, runnable) => {
debugger
// take a look at the parameters
console.log('error', error.message)
console.log('runnable', runnable)
// for example
let currentTest = runnable.ctx.currentTest
let title = runnable.title
throw error // throw error to have test still fail
})
Om försök igen
Det körbara objekt som skickas till on('fail')-händelsen har ett par egenskaper som ger användbar information om omförsöken.
Säg att du sätter {retries: 2} på testet, fail-händelsen kallas för varje försök som misslyckas.
Vid första och andra körningen är runnable.final === false.
På det tredje och sista försöket är runnable.final === true plus runnable.prevAttempts en array med de två tidigare (misslyckade) försöken.
Jag har inte kollat vad man får om, säg, tredje försöket lyckas.
Svar #2
Det finns ett Cyclope-plugin som kan täcka det du vill göra med testfel. Detta plugin inkluderar en hjälpfunktion savePageIfTestFailed, som du kan anropa i en afterEach() i din support/index.js-fil.
