Cypress: Jak opakovat neúspěšné testovací případy a protokolovat chybu konzoly na příkazovém řádku?

V našem předchozím blogu „Jak načíst rozšíření chrome v cypress.io“ jsme vysvětlili

  • Jak získat rozbalenou verzi rozšíření z chrome internetového obchodu?
  • Jak načíst rozšíření chromu v naší testované aplikaci?
  • Jaké jsou související změny konfigurace potřebné k načtení rozšíření v cypressu?

Zde budeme diskutovat:

  • Jak přidat schopnost opakování v našich testovacích skriptech?
  • Jak protokolovat výstup konzoly na příkazovém řádku, aby se usnadnilo ladění?

Než začneme, pojďme diskutovat o tom, proč musíme přidat opakovací schopnost? Jak víme v automatizaci front-end, šupinaté testy jsou jednou z hlavních výzev a přidávání možností opakování může být možným řešením pro stejné řešení, které pomáhá snížit falešné selhání kvůli náhodným problémům.

Jak přidat schopnost opakování?

Cypress nyní neposkytuje přímý způsob opakování neúspěšných testů, ale tuto schopnost můžeme přidat integrací pluginu do našich testovacích skriptů. Tento plugin provede znovu neúspěšný test podle poskytnutého počitadla opakování na každé úrovni testovací sady, jako je testovací úroveň, úroveň zavěšení atd.

Tady je to:

Nainstalujte plugin:

  • Přidejte plugin do devDependencies
$ npm install -D cypress-plugin-retries
  • V horní části stránky cypress / support / index.js:
vyžadují ('cypress-plugin-retries')
  • V horní části stránky cypress / plugin / index.js:
module.exports = (on, config) => {vyžadovat ('cypress-plugin-retries / lib / plugin') (on)} // Toto umožňuje protokolovat čítač opakování na příkazovém řádku.

Používání

  • Pomocí proměnné prostředí CYPRESS_RETRIES nastavte číslo opakování pro všechny soubory spec:

CYPRESS_RETRIES = 2 npm běh cypressu

  • Nebo nastavte klíč „env“ v konfiguračním souboru cypress.json a zadejte číslo opakování pro všechny soubory spec:
{"env": {"RETRIES": 2}}
  • Nebo na základě testu nebo háku nastavte číslo opakování:
it ('test', () => {Cypress.currentTest.ricates (2)})

Jde jen o to, abychom v našich testovacích případech doplnili schopnost opakování, abychom zabránili šupinatým testovacím případům.

Jak protokolovat výstup konzoly na příkazovém řádku?

Nyní je otázkou, jak provést testovací případy pomocí potrubí CI / CD, a pokud dojde k nějakému selhání, jak zjistit hlavní příčinu selhání? Stejně jako v CI / CD pipeline test se provádí v bezhlavém režimu a neexistuje žádné uživatelské rozhraní, takže jak zjistit chybu konzoly? Stejně jako schopnost opakování cypress neposkytuje žádnou konfiguraci pro tisk chyby konzoly na příkazovém řádku, poté se objeví další plugin.

Instalace

  • Přidejte plugin do devDependencies
$ npm install - save-dev cypress-log-to-output

Používání

  • V horní části stránky cypress / plugin / index.js:
module.exports = (on, config) => {vyžadovat ('cypress-plugin-retries / lib / plugin') (on)}

Během provádění testu uvidíme protokoly v příkazovém řádku následujícím způsobem:

Doufám, že se vám tento příspěvek líbil, sledujte zde a uvidíte, co bude dál.

Odkazy: https://docs.cypress.io/plugins/index.html#content