Saya memiliki tes 'berfungsi dengan anak-anak bersarang' di dalam file fix-order-test.js.
Menjalankan di bawah ini menjalankan semua tes dalam file.
jest fix-order-test
Bagaimana cara menjalankan hanya satu tes? Di bawah ini tidak berfungsi karena mencari file regex yang ditentukan.
jest 'works with nested children'
--testNamePattern
'works with nested children'
Opsi Jest CLI #testNamePatternJawaban:
Dari baris perintah, gunakan bendera
--testNamePattern
atau-t
Ini hanya akan menjalankan tes yang cocok dengan pola nama tes yang Anda berikan. Ada di dokumen Jest .
Cara lain adalah dengan menjalankan tes dalam mode menonton
jest --watch
dan kemudian tekan puntuk memfilter tes dengan mengetikkan nama file tes atau tuntuk menjalankan satu nama tes.Jika Anda memiliki bagian
it
dalamdescribe
blok, Anda harus menjalankansumber
it()
dan bukan nama file. Itulah yang saya pikirkan.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'
Dokumentasi Jest merekomendasikan hal berikut:
atau
sumber
test.only
. Jadi, jika Anda hanya ingin menjalankan satu tes di dalam file yang memiliki banyak kasus uji dalam serangkaian testcases yang terdiri dari banyak file, sayangnya Anda harus menjalankan file tunggal itujest myTestFile.test.js
npm test
. Anda harus menjalankan file itu sendiri atau menekanp
untuk mengatur filter.Seperti disebutkan dalam jawaban lain,
test.only
hanya memfilter tes lain dalam file yang sama . Jadi tes di file lain masih akan berjalan.Jadi untuk menjalankan tes tunggal, ada dua pendekatan:
Opsi 1: Jika nama pengujian Anda unik, Anda dapat memasukkan
t
saat dalam mode tonton dan memasukkan nama tes yang ingin Anda jalankan.Pilihan 2:
p
saat dalam mode tonton untuk memasukkan regex untuk nama file yang ingin Anda jalankan. (Perintah yang relevan seperti ini ditampilkan ketika Anda menjalankan Jest dalam mode menonton).it
keit.only
pada tes yang ingin Anda jalankan.Dengan salah satu dari pendekatan di atas, Jest hanya akan menjalankan tes tunggal dalam file yang Anda tentukan.
sumber
Perintah penuh untuk menjalankan uji Jest tunggal
Perintah:
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>
: path ke file dengan tes (js
atauts
)-c <jest-config>
: path ke file konfigurasi Jest yang terpisah (JSON), jika Anda menyimpan konfigurasi Jest di dalam,package.json
Anda tidak harus menentukan parameter ini (Jest akan menemukannya tanpa bantuan Anda)-t <the-name-of-test-block>
: Sebenarnya itu nama (parameter pertama) daridescribe(...)
,it(...)
atautest(...)
blok.Contoh:
Jadi, perintahnya
node node_modules/jest/bin/jest.js -i test/math-tests.js -c test/tests-config.json -t "1 + 1 = 2"
akan menguji
it("1 + 1 = 2", ...)
, tetapi jika Anda mengubah-t
parameter untuk"math tests"
kemudian akan menjalankan kedua tes daridescribe("math tests",...)
blok.Catatan:
node_modules/.bin/jest
dengannode_modules\jest\bin\jest.js
.'--inspect-brk'
parameter ke perintah.Menjalankan tes Jest tunggal melalui skrip NPM di 'package.json'
Setelah menginstal Jest, Anda dapat menyederhanakan sintaks dari perintah ini (di atas) dengan menggunakan skrip NPM . Di
"package.json"
tambahkan skrip baru ke"scripts"
bagian:Dalam hal ini, kami menggunakan alias
'jest'
alih-alih menulis path lengkap ke sana. Selain itu, kami tidak menentukan path file config karena kami juga dapat menempatkannya"package.json"
dan Jest akan memeriksanya secara default. Sekarang Anda dapat menjalankan perintah:npm run test:math
dan
"math tests"
blok dengan dua tes akan dieksekusi. Atau, tentu saja, Anda dapat menentukan satu tes khusus dengan namanya.Opsi lain adalah dengan menarik
<the-name-of-test-block>
parameter di luar"test:math"
skrip dan meneruskannya dari perintah NPM:package.json:
Perintah:
npm run test:math "math tests"
Sekarang Anda dapat mengelola nama uji coba dengan perintah yang jauh lebih pendek.
Catatan:
'jest'
perintah akan bekerja dengan NPM script karenanode
.Menjalankan uji Jest yang dipilih dalam Visual Studio Code
Jika Anda menggunakan Visual Studio Code Anda dapat memanfaatkannya dan menjalankan tes yang saat ini dipilih (dalam editor kode) dengan menekan
F5
tombol. Untuk melakukan ini, kita perlu membuat blok konfigurasi peluncuran baru di".vscode/launch.json"
file. Dalam konfigurasi itu, kita akan menggunakan variabel yang sudah ditentukan sebelumnya yang diganti dengan nilai yang sesuai (sayangnya tidak selalu ) ketika berjalan. Dari semua yang tersedia, kami hanya tertarik pada ini:${relativeFile}
- file yang dibuka saat ini relatif terhadap${workspaceFolder}
${selectedText}
- teks yang dipilih saat ini dalam file aktifTetapi sebelum menulis konfigurasi peluncuran, kita harus menambahkan
'test'
skrip ke dalam'package.json'
(jika kita belum memilikinya).package.json:
maka kita dapat menggunakannya dalam konfigurasi peluncuran kita.
Luncurkan konfigurasi:
sebenarnya melakukan hal yang sama dengan perintah yang dijelaskan sebelumnya dalam jawaban ini. Sekarang semuanya sudah siap, kita dapat menjalankan tes apa pun yang kita inginkan tanpa harus menulis ulang parameter perintah secara manual.
Inilah yang perlu Anda lakukan:
'F5'
tombol.Dan voila!
Sekarang untuk menjalankan tes yang Anda inginkan, cukup buka di editor, pilih namanya dan tekan F5.
Sayangnya, itu tidak akan menjadi "voila" pada mesin Windows karena mereka mengganti (siapa yang tahu mengapa)
${relativeFile}
variabel dengan path yang telah membalikkan garis miring dan Jest tidak akan mengerti jalan seperti itu.Catatan:
'--inspect-brk'
parameter.'package.json'
.sumber
npx
untuk sangat menyederhanakan memanggil Jest, terlepas dari OS.Anda juga dapat menggunakan
f
ataux
untuk memfokuskan atau mengecualikan tes. Sebagai contohsumber
xit
memang bekerja untuk saya, tetapifit
tidak. saya menggunakan [email protected].fit
bekerja di [email protected] untuk saya.f
ini hanya berfungsi dalam satu file.Seperti dikatakan di atas, Anda dapat menjalankan perintah
Jika Anda memiliki bagian
it
dalamdescribe
blok, Anda harus menjalankansumber
Jika Anda telah
jest
menjalankan sebagai perintah skrip, sesuatu sepertinpm test
, Anda perlu menggunakan perintah berikut untuk membuatnya berfungsi:sumber
dengan versi lelucon terbaru , Anda dapat menggunakan salah satu dari yang berikut untuk hanya menjalankan satu tes, sama untuk test suite.
jest 'test 1'
dapat bekerja juga jika nama tes unik.sumber
Dalam VS Code, ini saya jalankan / debug hanya 1 uji Jest, dengan breakpoints: https://github.com/Microsoft/vscode-recipes/tree/master/debugging-jest-tests
Saya
launch.json
memiliki ini di dalam:dan ini di
package.json
:test
(atauit
) menjaditest.only
(atauit.only
). Untuk menjalankan 1 test suite (beberapa tes), ubahdescribe
kedescribe.only
.Jest Current File
.sumber
"scripts": { "test": "jest" }
masukpackage.json
karena Anda telah menentukan path lengkap pada"program"
parameter dilaunch.json
.hanya sedikit add-on, karena sepertinya ada semacam perkelahian jika menggunakan
./node_modules/.bin/jest -i ...
atau sekadarjest -i ...
ataunpm test -- -i ...
jest
berfungsi jika Anda menginstalnya secara global (seperti halnya npm install -g jest), cara penanganan dependensi yang tidak begitu bersihnpx jest -i ...
=> inilah tujuan dari npx. menyelamatkan Anda dari menulis./node_modules/.bin/...
sumber
Ini saya ambil:
./node_modules/.bin/jest --config test/jest-unit-config.json --runInBand src/components/OpenForm/OpenForm.spec.js -t 'show expanded'
Catatan:
./node_modules/.bin/...
adalah cara yang luar biasa, untuk mengakses binary yang diinstal secara lokal (atau moka atau ...) yang disertakan dengan paket yang diinstal secara lokal. (ya, dalam skrip npm Anda, Anda tidak dapatjest
apa-apa sebelumnya, tetapi ini berguna pada baris perintah ... (itu juga awal yang baik untuk konfigurasi debug Anda, IDE mana pun yang Anda gunakan ...)package.json
), inilah yang Anda butuhkan.--runInBand
- seperti yang dikatakan, tidak tahu tentang konfigurasi Anda, tetapi jika Anda berkonsentrasi pada pengembangan / perbaikan satu tes, Anda lebih suka tidak ingin berurusan dengan pekerja web ...-t
untuk tidak menjalankan semua tes dalam file itu tetapi hanya satu (di sini: yang memiliki sesuatu dengan 'show expanded
' dalam namanya). Efek yang sama dapat dicapai dengan menempel.only()
ke file itu.sumber
Sekarang ada plugin lelucon yang bagus untuk ini disebut
jest-watch-typeahead
itu membuat proses ini jauh lebih sederhana.sumber
Ini hanya akan berfungsi jika nama spec pengujian Anda unik. Kode di atas akan referensi
file dengan nama ini:
test-name.component.spec.ts
sumber