Czy istnieje sposób na pokrycie kodu we frameworku testowym Javascript Jest zbudowanym na bazie Jasmine?
Wewnętrzna struktura nie wyświetla pokrycia kodu, jaki otrzymuje. Próbowałem też używać Istanbul , blanket i JSCover , ale żaden z nich nie działa.
javascript
jestjs
Alex Palcuie
źródło
źródło
Odpowiedzi:
Używając Jest 21.2.1 , widzę pokrycie kodu w wierszu poleceń i tworzę katalog pokrycia, przechodząc
--coverage
do skryptu Jest. Poniżej kilka przykładów:Zwykle instaluję Jest lokalnie, w takim przypadku polecenie może wyglądać tak:
npx jest --coverage
Zakładam (choć nie potwierdziłem), że zadziałałoby to również, gdybym zainstalował Jest globalnie:
jest --coverage
Bardzo nieliczne dokumenty są tutaj
Kiedy przeszedłem do katalogu pokrycia / lcov-report , znalazłem plik index.html , który można było załadować do przeglądarki. Zawierał informacje wydrukowane w wierszu poleceń, a także dodatkowe informacje i niektóre dane wyjściowe graficzne.
źródło
node_modules
via./node_modules/.bin/jest --coverage
. Dopóki pakiet jest nazwany w package.json, możesz zagwarantować wykonanie z dokładną wersją żartu, jakiej oczekujesz.AKTUALIZACJA: 20.07.2018 - Dodano łącza i zaktualizowaną nazwę dla raportów zasięgu.
AKTUALIZACJA: 14.08.2017 - Ta odpowiedź jest całkowicie nieaktualna. Spójrz tylko na dokumenty Jest teraz. Mają oficjalne wsparcie i dokumentację, jak to zrobić.
@hankhsiao ma rozwidlone repozytorium, w którym Istambuł współpracuje z Jest. Dodaj to do swoich zależności deweloperskich
Upewnij się również, że w Twoim wpisie package.json jest włączone pokrycie i możesz również określić żądane formaty. (HTML jest dość kiepski).
Zobacz dokumentację Jest dla raportów pokrycia (domyślnie
["json", "lcov", "text"]
)Lub dodaj,
--coverage
gdy przywołujesz żart.źródło
coverageReporters
a wartość domyślna to["json", "lcov", "text"]
. Zobacz facebook.github.io/jest/docs/…Styczeń 2019: Jest wersja 23.6
Dla każdego, kto ostatnio zastanawiał się nad tym pytaniem, zwłaszcza jeśli testuje się przy użyciu
npm
lubyarn
bezpośrednioObecnie nie musisz zmieniać opcji konfiguracyjnych
Zgodnie z oficjalną stroną internetową możesz wykonać następujące czynności, aby wygenerować raporty pokrycia:
1- Dla npm:
Musisz postawić
--
przed przekazaniem--coverage
argumentu żartujeśli spróbujesz wywołać
--coverage
bezpośrednio bez polecenia,--
to nie zadziała2- W przypadku przędzy:
Możesz przekazać
--coverage
argument żartu bezpośrednioźródło
--watch
ustawienia.package.json
.W porządku, zignoruj moją poprzednią odpowiedź, ponieważ ktoś powiedział mi, że to nie rozwiązało problemu.
Nowa odpowiedź:
1) Sprawdź najnowszy żart (v 0.22): https://github.com/facebook/jest
2) Zespół na Facebooku umieszcza Stambuł jako część raportu o zasięgu i możesz z niego korzystać bezpośrednio.
3) Po wykonaniu dowcipu możesz pobrać raport pokrycia na konsoli, aw katalogu głównym ustawionym przez żart znajdziesz raport pokrycia w formacie json i html.
4) FYI, jeśli zainstalujesz z npm, możesz nie dostać najnowszej wersji; więc najpierw wypróbuj github i upewnij się, że zasięg jest tym, czego potrzebujesz.
Stara odpowiedź:
Mam też ten sam problem. Krótka odpowiedź brzmi:
Istanbul
iJest
NIE pracują razem.Sprawdź następujące strony, aby uzyskać szczegółowe informacje:
https://github.com/facebook/jest/issues/101
@Ciro Costa:
config.collectCoverage
NIE działa, ponieważ jest to funkcja „TODO”. Sprawdź kod źródłowy.źródło
Jeśli masz problem z niedziałającym --coverage, może to być również spowodowane włączeniem raportów pokrycia bez dodawania „tekstu” lub „podsumowania tekstu”. Z dokumentacji: „Uwaga: ustawienie tej opcji powoduje nadpisanie wartości domyślnych. Dodaj„ tekst ”lub„ podsumowanie tekstu ”, aby wyświetlić podsumowanie pokrycia w wynikach konsoli”. Źródło
źródło
Skonfiguruj plik package.json
Teraz biegnij:
Rozpocznie się cały test i otrzymasz raport.
źródło
Miałem ten sam problem i naprawiłem go jak poniżej.
npm install --save-dev yarn
npm install --save-dev jest-cli
"jest-coverage": "yarn run jest -- --coverage"
Po napisaniu testów uruchom komendę npm run jest-zasięg. Spowoduje to utworzenie folderu pokrycia w katalogu głównym. /coverage/icov-report/index.html zawiera widok HTML pokrycia kodu.
Miłego kodowania!
źródło
Spróbuj Chucpah . Właśnie go użyłem. Pisałem na blogu o tym, jak zintegrować się z Visual Studio.
Tak zrobiłem pokrycie kodu w Chutzpah: http://francorobles.wordpress.com/2014/09/14/code-coverage-with-chutzpah/
źródło
require
.