Saya menggunakan Mocha untuk menguji hal-hal JavaScript saya. File pengujian saya berisi 5 tes. Apakah itu mungkin untuk menjalankan tes tertentu (atau serangkaian tes) daripada semua tes dalam file?
javascript
mocha
Misha Moroshko
sumber
sumber
--grep
hanya disaring dari@
tag.mocha some/test.js
) tidak berfungsi sama sekali. Terima kasih!logs a bcd
yang berisilogs a
substring? Regexp^$
tidak berfungsi pada 0.10.2.Tergantung pada pola penggunaan Anda, Anda mungkin hanya ingin menggunakan saja . Kami menggunakan gaya TDD; terlihat seperti ini:
Hanya tes ini yang akan berjalan dari semua file / suite.
sumber
it.only
.it.only
tidak akan bekerja sama dengangiven
dari mocha-testdata . Dan mudah untuk menghapusnya nanti.eslint-plugin-mocha
memiliki aturanno-exclusive-tests
yang akan menangkap Anda jika Anda lupa untuk menghapus.only
.Jika Anda menggunakan
npm test
(menggunakan skrip package.json) gunakan ekstra--
untuk meneruskan param ke mokamisalnya
npm test -- --grep "my second test"
EDIT : Sepertinya
--grep
bisa sedikit cerewet (mungkin tergantung pada argumen lain). Kamu bisa:Ubah package.json:
Atau gunakan alternatif
--bail
yang tampaknya kurang rewelsumber
--grep
bisa sedikit cerewet - coba letakkan tepat setelah mocha dalam entri skrip npm. Lainnpm test -- --bail
berguna untuk membayar setelah tes gagal pertama--grep
menyelamatkan hariku! Terima kasih banyak. PS. Saya menggunakan Windows, menjalankannpm test -- --grep @tag
jalankan uji tunggal –dengan nama file–
Sebenarnya, seseorang juga dapat menjalankan tes mocha tunggal dengan nama file (bukan hanya dengan "it () - string-grepping") jika Anda menghapus pola glob (mis.
./test/**/*.spec.js
) Dari mocha.opts Anda, masing-masing membuat salinan, tanpa:Inilah mocha.single.opts saya (hanya berbeda dengan melewatkan garis gumpalan yang disebutkan di atas)
Latar Belakang: Meskipun Anda dapat mengganti berbagai sakelar dari File-opts (dimulai dengan
--
), Anda tidak dapat mengabaikan glob . Tautan itu juga memiliki beberapa penjelasan.Petunjuk: jika
node_modules/.bin/mocha
membingungkan Anda, untuk menggunakan paket moka lokal. Anda juga dapat menulis adilmocha
, jika Anda menginstalnya secara global.Dan jika Anda menginginkan kenyamanan
package.json
: Masih: menghapus**/*
gumpalan -ish dari Andamocha.opts
, masukkan di sini, untuk semua pengujian, tinggalkan mereka untuk pengujian tunggal:pemakaian:
masing-masing
(pikirkan
--
!)sumber
Warning: Could not find any test files matching pattern: $1
Cukup gunakan .hanya sebelum 'menggambarkan', 'itu' atau 'konteks'. Saya menjalankan menggunakan "$ npm run test: unit", dan hanya menjalankan unit dengan .on saja.
sumber
Hai solusi di atas tidak berhasil untuk saya. Cara lain menjalankan tes tunggal adalah
Ini membantu menjalankan test case dari satu file dan dengan nama tertentu.
sumber
-g
dan Anda tidak perlu menentukan nama file. Jika Anda tidak dapat menulis ekspresi yang cukup selektif, itu artinya Anda tidak memberi nama pengujian dengan benar.misalnya:
di sini 'test / api / controllers / test.js' adalah filepath.
sumber
Anda dapat mencoba "hanya"
dalam hal ini yang pertama hanya akan dieksekusi
sumber
--forbid-only
pada CI / server build..only
memiliki kecenderungan untuk menyelinap ke cabang utama dan membuat tes lainnya bisu karena mereka tidak akan melakukan lagi. Saya jadi berpikir tentang alur kerja mengubah kode untuk menjalankan tes yang berbeda anti-fitur. Pelari uji harus menentukan tes mana yang harus dieksekusi (tes yang ditandai) bukan pengembang.it.only
untuk repoMelihat ke https://mochajs.org/#usage kita dapat menggunakannya
akan bekerja. Anda dapat menghilangkan '.js' di bagian akhir.
sumber
Tidak yakin mengapa metode grep tidak berfungsi untuk saya saat menggunakan tes npm. Tapi ini berhasil. Saya juga perlu menentukan folder tes juga untuk beberapa alasan.
npm test - test / sometest.js
sumber
Konsolidasi semua tes Anda dalam satu file test.js & paket Anda json tambahkan skrip sebagai:
Ketikkan perintah pada direktori pengujian Anda:
sumber