Saya dapat menguji banyak file menggunakan Jest, tetapi saya tidak tahu cara menguji satu file.
Saya sudah:
- Lari
npm install jest-cli --save-dev
- Diperbarui
package.json
: `{..." skrip ": {" test ":" jest "} ...} - Menulis sejumlah tes.
Menjalankan npm test
berfungsi seperti yang diharapkan (saat ini menjalankan 14 tes).
Bagaimana cara menguji satu file, misalnya pengujian app/foo/__tests__/bar.spec.js
?
Saya telah mencoba menjalankan npm test app/foo/__tests__/bar.spec.js
(dari root proyek), tetapi saya mendapatkan kesalahan berikut:
npm ERR! Error: ENOENT, open '<path to project>/node_modules/app/foo/__tests__/bar.spec.js/package.json'
Terima kasih
jest bar.spec.js
memberijest: command not found
. Saya sudah mengkonfirmasi Jest sudah diinstal (npm list -g jest
pertunjukan[email protected]
). FWIW, ketika saya menjalankan menggunakannyanpm test
menggunakanjest-cli
.jest-cli
adalah modul yang tepat, instal secara globalnpm install -g jest-cli
.jest
di npm adalah ... sesuatu yang lainnode_modules/.bin/jest args
fit
alih-alihit
.Yang harus Anda lakukan adalah mengucapkan mantra sihir:
Standalone
--
adalah * nix magic untuk menandai akhir dari opsi, yang berarti (untuk NPM) yang semuanya setelah itu diteruskan ke perintah yang sedang dijalankan, dalam hal inijest
. Selain itu, Anda dapat menampilkan catatan penggunaan lelucon dengan mengatakanBagaimanapun, nyanyian
menjalankan tes dalam file bernama (
FooBar.js
). Anda harus mencatat, bahwa:Jest memperlakukan nama tersebut sebagai case-sensitive, jadi jika Anda menggunakan sistem file case-insensitive, tetapi case-preserving (seperti Windows NTFS), Anda mungkin menemukan apa yang tampak sebagai keanehan yang terjadi.
Jest tampaknya memperlakukan spec sebagai awalan.
Jadi mantera di atas akan
FooBar.js
,Foo.js
danFooZilla.js
foo.js
sumber
npm ERR! Error: ENOENT, open '<path to project>/node_modules/<name of file>/package.json'
npm test ToDoForm.test.js
bekerja sementarajest ToDoForm.test.js
tidakUntuk menjalankan tes individual:
-t
- setelah itu masukkan regex yang berisi nama tes.sumber
Menggunakan
npm test
bukan berarti gurauan adalah menginstal secara global. Itu hanya berarti "tes" dipetakan untuk menggunakan lelucon di package.json AndaBerikut ini adalah apa yang berhasil bagi saya, di tingkat akar proyek:
args dapat berupa file uji yang ingin Anda jalankan atau direktori yang berisi banyak file.
sumber
node_modules/.bin
adalah dengan menggunakannpx
perintah. Misalnyanpx jest [args]
jika Anda menggunakan,
yarn
Anda dapat menambahkan file.spec.js
atau.test.js
langsung setelah:Ini adalah bagian dari my
package.json
with jest install sebagai paket lokal (menghapus bagian yang relevan):sumber
Anda dapat menggunakan nama file dengan
npm test --
:sumber
Jika Anda menjalankan
npm >= 5.2.0
dan Anda telah menginstal gurauan secara lokal sebagaidevDependencies
dengannpm i -d jest
Anda dapat menjalankan gurauan pada file tertentu dengan melakukannpx jest /path/to/your/spec.js
sumber
Kami menggunakan nrwl-nx dengan sudut . Dalam hal ini kita dapat menggunakan perintah ini:
catatan:
npm test
akan menjalankan skrip uji yang ditentukan dalampackage.json
:"test:client": "ng test client"
<ng-project>
adalah nama proyek diangular.json
"defaultProject"
(ditentukan dalamangular.json
) akan digunakan (jadi Anda harus menentukannya, ketika tes tidak dalam proyek default Anda)angular.json
menavigasi ke"project"
-"<ng-project>"
-"architect"
-"test"
"builder"
, yang dalam kasus kami adalah:"@nrwl/jest:jest"
npm test server -- --help
untuk melihat semua opsi yang tersedia--testFile
yang digunakan di sinisumber
Ini adalah bagaimana saya menjalankan tes secara dinamis pada file tertentu tanpa memulai kembali tes. Proyek reaksi saya dibuat adalah
create-react-app
jadi itu mengawasi tes untuk perubahan, secara otomatis menjalankan tes ketika saya membuat perubahan.
Jadi ini yang saya lihat di akhir hasil tes di terminal.
Tekan W
lalu tekan P
ini setelah saya ingin menjalankan file 'index.es6.js' di folder 'Login'
Itulah cara saya menjalankan tes pada file tertentu.
sumber
Juga bisa diraih oleh
$ jest --findRelatedTests path/to/fileA.js
ref ( https://jestjs.io/docs/en/cli#running-from-the-command-line )
Bagaimana itu bisa dicapai di Nx monorepo, inilah jawabannya
user@host:/path/to/workspace$ npx nx test api --findRelatedTests=apps/api/src/app/mytest.spec.ts
ref & info lebih lanjut ( https://github.com/satminav/nx-qa/issues/6 )
sumber
Saya baru saja menginstal lelucon sebagai global dan kemudian berlari
jest myFileToTest.spec.js
dan itu berhasilsumber
Anda memiliki dua opsi:
Ini menghindari Anda untuk menginstal Jest secara global. Anda menggunakan lelucon yang digunakan oleh proyek Anda.
sumber
Jest akan menggunakan apa yang Anda lewati sebagai pola regex . Itu akan cocok untuk.
Jika Anda ingin menjalankan file pengujian tertentu. Maka cara terbaik untuk melakukannya adalah dengan mengatur jalur lengkap ke sana. (Anda juga dapat mengatur jalur relatif tertentu seperti (src / XFolder / index.spec.ts)).
Cara termudah untuk menyediakan path lengkap yang ada di direktori dan di linux adalah:
Perhatikan penggunaan variabel $ PWD .
Untuk windows! (akan diperbarui)
sumber
Dengan Angular dan Jest Anda dapat menambahkan ini ke package.json di bawah "skrip"
Kemudian untuk menjalankan tes unit untuk file tertentu Anda dapat menulis perintah ini di terminal Anda
sumber
Tidak perlu melewati jalur penuh. Gunakan saja
regex
pattern
.https://jestjs.io/docs/en/cli.html#--testnamepatternregex
sumber