Mam test „działa z zagnieżdżonymi dziećmi” w pliku fix-order-test.js.
Uruchomienie poniżej uruchamia wszystkie testy w pliku.
jest fix-order-test
Jak przeprowadzić tylko jeden test? Poniższe nie działa, gdy szuka pliku określonego wyrażenia regularnego.
jest 'works with nested children'
--testNamePattern
'works with nested children'
Opcje Jest CLI #testNamePatternOdpowiedzi:
Z wiersza polecenia użyj flagi
--testNamePattern
lub-t
Spowoduje to uruchomienie testów pasujących do podanego wzorca nazwy testu. Jest w dokumentach Jest .
Innym sposobem jest uruchomienie testów w trybie zegarka,
jest --watch
a następnie naciśnięcie przycisku w pcelu filtrowania testów poprzez wpisanie nazwy pliku testowego lub turuchomienie pojedynczej nazwy testu.Jeśli masz
it
wnętrzedescribe
bloku, musisz biecźródło
it()
funkcji, a nie nazwa pliku. Tak myślałem.npm test -- -t "fix order test"
./node_modules/.bin/jest --config=./.jest.config.json ./src/x/y/sites.js/sitesWorker.test.js -t 'given only incorrect sites'
Dokumentacja Jest zaleca, co następuje:
lub
źródło
test.only
. Więc jeśli chcesz uruchomić tylko jeden test w pliku, który ma wiele przypadków testowych w pakiecie zestawów testów składających się z wielu plików, musisz niestety uruchomić ten pojedynczy plikjest myTestFile.test.js
npm test
. Będziesz musiał uruchomić plik sam lub naciśnij,p
aby ustawić filtr.Jak wspomniano w innych odpowiedziach,
test.only
po prostu odfiltrowuje inne testy w tym samym pliku . Testy w innych plikach nadal by się uruchomiły.Aby uruchomić pojedynczy test, istnieją dwa podejścia:
Opcja 1: jeśli Twoja nazwa testu jest unikalna, możesz wejść
t
w tryb zegarka i wprowadzić nazwę testu, który chcesz uruchomić.Opcja 2:
p
w trybie zegarka, aby wprowadzić wyrażenie regularne dla nazwy pliku, który chcesz uruchomić. (Odpowiednie polecenia takie jak te są wyświetlane po uruchomieniu Jest w trybie zegarka).it
doit.only
na teście, który chcesz uruchomić.W przypadku jednej z powyższych metod Jest uruchomi tylko jeden test w podanym pliku.
źródło
Pełna komenda, aby uruchomić pojedynczy test Jest
Komenda:
node <path-to-jest> -i <you-test-file> -c <jest-config> -t "<test-block-name>"
<path-to-jest>
:node_modules\jest\bin\jest.js
node_modules/.bin/jest
-i <you-test-file>
: ścieżka do pliku z testami (js
lubts
)-c <jest-config>
: ścieżka do osobnego pliku konfiguracyjnego Jest (JSON), jeśli zachowasz konfigurację Jestpackage.json
, nie musisz określać tego parametru (Jest on znaleziony bez Twojej pomocy)-t <the-name-of-test-block>
: W rzeczywistości jest to nazwa (pierwszy parametr) zdescribe(...)
,it(...)
lubtest(...)
bloku.Przykład:
Więc polecenie
node node_modules/jest/bin/jest.js -i test/math-tests.js -c test/tests-config.json -t "1 + 1 = 2"
przetestuje
it("1 + 1 = 2", ...)
, ale jeśli zmienisz-t
parametr na"math tests"
, uruchomi oba testy zdescribe("math tests",...)
bloku.Uwagi:
node_modules/.bin/jest
znode_modules\jest\bin\jest.js
.'--inspect-brk'
parametr do polecenia.Uruchamianie pojedynczego testu Jest za pomocą skryptów NPM w pakiecie.json
Po zainstalowaniu Jest możesz uprościć składnię tego polecenia (powyżej) za pomocą skryptów NPM . W
"package.json"
dodać nowy skrypt do"scripts"
sekcji:W takim przypadku używamy aliasu
'jest'
zamiast pisać pełną ścieżkę do niego. Nie określamy również ścieżki do pliku konfiguracyjnego, ponieważ możemy go również umieścić,"package.json"
a Jest to domyślnie sprawdzone. Teraz możesz uruchomić polecenie:npm run test:math
i
"math tests"
blok z dwoma testami zostanie wykonany. Lub, oczywiście, możesz określić jeden konkretny test według jego nazwy.Inną opcją byłoby wyciągnięcie
<the-name-of-test-block>
parametru poza"test:math"
skrypt i przekazanie go z komendy NPM:package.json:
Komenda:
npm run test:math "math tests"
Teraz możesz zarządzać nazwą testu (-ów) uruchamiania przy użyciu znacznie krótszej komendy.
Uwagi:
'jest'
Komenda zadziała ze skryptami KMP ponieważnode
.Uruchamianie wybranego testu Jest w programie Visual Studio Code
Jeśli korzystasz z programu Visual Studio Code, możesz z niego skorzystać i uruchomić aktualnie wybrany test (w edytorze kodu), naciskając
F5
przycisk. Aby to zrobić, musimy utworzyć nowy blok konfiguracji uruchamiania w".vscode/launch.json"
pliku. W tej konfiguracji użyjemy predefiniowanych zmiennych, które zostaną podstawione odpowiednimi (niestety nie zawsze ) wartościami podczas działania. Ze wszystkich dostępnych interesują nas tylko:${relativeFile}
- aktualnie otwarty plik w stosunku do${workspaceFolder}
${selectedText}
- aktualnie wybrany tekst w aktywnym plikuAle przed wypisaniem konfiguracji uruchamiania powinniśmy dodać
'test'
skrypt do naszego'package.json'
(jeśli jeszcze go nie mamy).package.json:
wtedy możemy go użyć w konfiguracji uruchamiania.
Uruchom konfigurację:
faktycznie robi to samo, co polecenia opisane wcześniej w tej odpowiedzi. Teraz, gdy wszystko jest gotowe, możemy uruchomić dowolny test bez konieczności ręcznego przepisywania parametrów polecenia.
Oto wszystko, co musisz zrobić:
'F5'
przyciskI voila!
Teraz, aby uruchomić dowolny test, po prostu otwórz go w edytorze, wybierz jego nazwę i naciśnij F5.
Niestety, nie będzie to „voila” na komputerach z systemem Windows, ponieważ zastępują one (kto wie dlaczego)
${relativeFile}
zmienną ścieżką z odwróconymi ukośnikami i Jest to ścieżka nie zrozumiana.Uwagi:
'--inspect-brk'
parametru.'package.json'
.źródło
npx
znacznym uproszczeniu wywoływania Jest, niezależnie od systemu operacyjnego.Możesz także użyć
f
lub,x
aby skoncentrować lub wykluczyć test. Na przykładźródło
xit
działał dla mnie, alefit
nie działa. używam [email protected].fit
pracuje dla mnie w [email protected].f
działa tylko w jednym pliku.Jak wspomniano powyżej, możesz uruchomić polecenie
Jeśli masz
it
wnętrzedescribe
bloku, musisz biecźródło
Jeśli
jest
działasz jako polecenie skryptu,npm test
musisz użyć następującego polecenia, aby działało:źródło
z najnowszą wersją jest , możesz użyć jednego z poniższych, aby uruchomić tylko jeden test, taki sam dla zestawu testów.
jest 'test 1'
może również działać, jeśli nazwa testu jest unikalna.źródło
W VS Code pozwala mi to uruchomić / debugować tylko 1 Jest test, z punktami przerwania: https://github.com/Microsoft/vscode-recipes/tree/master/debugging-jest-tests
Mój
launch.json
ma to w środku:i to w
package.json
:test
(lubit
) natest.only
(lubit.only
). Aby uruchomić 1 zestaw testów (kilka testów), zmieńdescribe
nadescribe.only
.Jest Current File
.źródło
"scripts": { "test": "jest" }
siępackage.json
dlatego, że podano pełną ścieżkę w"program"
parametrlaunch.json
.Oto moje zdanie:
./node_modules/.bin/jest --config test/jest-unit-config.json --runInBand src/components/OpenForm/OpenForm.spec.js -t 'show expanded'
Uwagi:
./node_modules/.bin/...
to wspaniały sposób na uzyskanie dostępu do lokalnie zainstalowanego pliku binarnego jest (lub mokka lub ...) dostarczonego z lokalnie zainstalowanym pakietem. (tak, w skryptach npm nie możnajest
nic wcześniej zrobić , ale jest to przydatne w wierszu poleceń ... (to także dobry początek dla konfiguracji debugowania, niezależnie od tego, którego IDE używasz ...)package.json
), to jest to, czego potrzebujesz.--runInBand
- jak powiedziano, nie wiem o swojej konfiguracji, ale jeśli koncentrujesz się na opracowaniu / naprawieniu pojedynczego testu, raczej nie chcesz zajmować się pracownikami sieci ...-t
aby nie uruchamiać wszystkich testów w tym pliku, ale tylko jeden (tutaj: ten, który mashow expanded
w nazwie coś z „ ”). Ten sam efekt można uzyskać poprzez przyklejenie.only()
do tego pliku.źródło
tylko mały dodatek, ponieważ wydaje się, że była jakaś walka, czy użyć,
./node_modules/.bin/jest -i ...
czy tylkojest -i ...
lubnpm test -- -i ...
jest
działa, jeśli masz zainstalowane globalnie (jak npm npm install -g jest), niezbyt czysty sposób radzenia sobie z zależnościaminpx jest -i ...
=> właśnie do tego służy npx. ratuje cię przed pisaniem./node_modules/.bin/...
źródło
Jest teraz ładna wtyczka dla tego, co nazywa się
jest-watch-typeahead
, dzięki czemu ten proces jest znacznie prostszy.źródło
Działa to tylko wtedy, gdy nazwa specyfikacji testu jest unikalna. Powyższy kod będzie się odnosił
plik o tej nazwie:
test-name.component.spec.ts
źródło