Len rýchla aktualizácia k
článku, ktorý som napísal pred nejakým časom,
ktorý možno považovať za prvú časť tejto témy. Problém opísaný v článku je
základný. Pri vývoji Cypress testov je užitočné používať .only(),
Cypress modifikátor na vylúčenie ostatných testov,
aby sme pri rýchlych iteráciách videli výsledky len toho jedného testu,
ktorý vyvíjame. Ale náhodné pushnutie do repozitára
spôsobuje množstvo nežiaducich problémov
pre všetkých zúčastnených.
Riešenie z toho článku, ktoré som nejaký čas používal, je veľmi základné, no pravdepodobne nie príliš prenositeľné. Mne fungovalo, no žiaľ, nedávno sa mi nedarilo rozbehať ho s čerstvo vydaným Husky 7.0. Odvtedy som prešiel na npm balík s názvom stop-only a nemám sa nač sťažovať.
Používanie stop-only s Husky 7.0 #
Nastavte Husky automaticky:
npx husky-init && npm install
Vyššie uvedené vykoná viacero zmien vo vašom git repozitári:
- Nainštaluje Husky ako vývojovú závislosť.
- Povolí git hooky.
- Pridá
prepare skript
do
package.json. - Vytvorí priečinok
.husky/, kde sa hooky nachádzajú.
Odstráňte vygenerovaný vzorový súbor pre-commit:
rm .husky/pre-commit
Vygenerujte Husky hook pre-push príkazom:
npx husky add .husky/pre-push "npx stop-only --folder cypress/integration"
Tým sa vytvorí súbor hooku .husky/pre-push s nasledujúcim obsahom:
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx stop-only --folder cypress/integration
Nezabudnite začať sledovať súbor:
git add .husky/pre-push
Ďalej nainštalujte stop-only aj samotný Cypress, oba ako vývojové závislosti:
npm install --save-dev stop-only cypress
A vytvorte vzorový test obsahujúci .only(), napríklad na základnej
Cypress testovacej ceste cypress/integration/spec.js:
/// <reference types="cypress" />
describe("Simplest test should", () => {
it.only("visit base URL", () => {
cy.visit("/")
})
})
Push do vzdialeného repozitára je teraz zastavený včas a efektne:
$ git push
Found .only here 👎
cypress/integration/spec.js:3: it.only("visit base URL", () => {
husky - pre-push hook exited with code 1 (error)
Kompletný príklad je dostupný v repozitári. Príjemné testovanie!