Używam Mocha do testowania mojej aplikacji NodeJS. Nie jestem w stanie dowiedzieć się, jak korzystać z funkcji pokrycia kodu. Próbowałem google, ale nie znalazłem odpowiedniego tutoriala. Proszę pomóż.
node.js
unit-testing
code-coverage
mocha
Tusharmath
źródło
źródło
istanbul cover node_modules/mocha/bin/_mocha
.istanbul.cmd cover C:\Users\{UserName}\AppData\Roaming\npm\node_modules\mocha\bin\_mocha
$(npm bin)
jest kanonicznym skrótem do./node_modules/.bin/
iistanbul/lib/cli.js
jest aliasemistanbul
w folderze bin. Oto krótsze polecenie:$(npm bin)/istanbul cover $(npm bin)/_mocha -- --ui bdd -R spec -t 5000
istanbul cover node_modules/mocha/bin/_mocha -- -R spec
Teraz ( 2020 ) preferowanym sposobem korzystania ze Stambułu jest „najnowocześniejszy interfejs wiersza poleceń” nyc .
Ustawiać
Najpierw zainstaluj go w swoim projekcie za pomocą
Następnie, jeśli masz projekt oparty na npm, po prostu zmień skrypt testowy wewnątrz
scripts
obiektu pliku package.json , aby wykonać pokrycie kodu testów mokka :Biegać
Teraz uruchom testy
i zobaczysz taką konsolę w konsoli, zaraz po zakończeniu testów:
Dostosowywanie
Raport HTML
Po prostu użyj
zamiast
text
. Teraz wygeneruje raport w środku./coverage/index.html
.Formaty raportów
Stambuł obsługuje szeroki zakres formatów raportów. Wystarczy spojrzeć na bibliotekę raportów, aby znaleźć najbardziej przydatne dla Ciebie. Po prostu dodaj
--reporter=REPORTER_NAME
opcję dla każdego formatu, który chcesz. Na przykład za pomocąbędziesz mieć zarówno konsolę, jak i raport HTML.
Nie uruchamiaj pokrycia testem npm
Po prostu dodaj do skryptu kolejny skrypt
package.json
i zostaw gotest
ze swoim testerem (np. Mokka):Teraz uruchom ten niestandardowy skrypt
przeprowadzać testy z pokryciem kodu.
Test wymuszenia kończy się niepowodzeniem, jeśli zasięg kodu jest niski
Niepowodzenie, jeśli całkowity zasięg kodu wynosi poniżej 90%:
Niepowodzenie, jeśli zasięg kodu co najmniej jednego pliku jest mniejszy niż 90%:
źródło
--reporter=html
włączone, ale plik html jest zawsze pusty, nic nie jest pokazywane w niepokrytych blokach lub% pokrytych itp. Tylko nagłówki tabeliBlanket.js również działa idealnie.
npm install --save-dev blanket
przed twoim testem / tests.js
biegać
mocha -R html-cov > coverage.html
źródło