Saya memiliki proyek membangun Angular2 dengan Angular-CLI (beta 20).
Apakah ada cara untuk menjalankan tes hanya terhadap satu file spesifikasi yang dipilih?
Saya dulu punya proyek berdasarkan mulai cepat Angular2, dan saya bisa secara manual menambahkan spesifikasi ke file melati. Tetapi saya tidak tahu bagaimana mengatur ini di luar pengujian karma atau bagaimana membatasi tes karma untuk file tertentu dengan build Angular-CLI.
sumber
fdescribe
atauxdescribe
? Saya tidak ingin peninjau yang ceroboh (saya) menggabungkan PR yang melewatkan semua tes saya.Konfigurasikan
test.ts
file di dalamsrc
folder:Ganti
/\.spec\.ts$/
dengan nama file yang ingin Anda uji. Sebagai contoh:/app.component\.spec\.ts$/
Ini akan menjalankan tes hanya untuk
app.component.spec.ts
.sumber
Anda dapat menguji hanya file tertentu dengan CLI Angular (
ng
perintah) seperti ini:Dokumen lebih lanjut ada di https://angular.io/cli/test
Perhatikan bahwa sementara ini berfungsi untuk file perpustakaan yang berdiri sendiri, itu tidak akan berfungsi untuk komponen / layanan sudut / dll. Ini karena file sudut memiliki dependensi pada file lain (yaitu
src/test.ts
dalam Angular 7). Sayangnya--main
bendera tidak mengambil banyak argumen.sumber
component.spec.ts
file yang dibuat secara otomatis , kita akan melihat bahwa tes tidak pernah dimulai:Error: AsyncTestZoneSpec is needed for the async() test helper but could not be found. Please make sure that your environment includes zone.js/dist/async-test.js
... Saya yakin solusi lebih lanjut dapat diretas bersama tetapi itu adalah sesuatu yang harus diperhatikan karena pengaturan dilakukan di dalamsrc/main.ts
dan impornya tidak tersedia dalam kasus ini.ng t
tes saya menulis melewati tetapi ketika saya menjalankan file tertentu itu memberikan kesalahan. TypeError: Tidak dapat membaca properti 'getComponentFromError' of null di TestBedViewEngine._initIfNeeded (node_modules/@angular/core/fesm2015/testing.js: 3112: 1) di TestBedViewEngine.get (node_modules/f/j/test/f//j/////j/tter/meter/file/termake.html). 3230: 1) di Function.get (node_modules/@angular/core/fesm2015/testing.js: 2960: 1) di UserContext. <anonymous> (src / app / timebar.service.spec.ts: 14: 45) "Jika Anda ingin dapat mengontrol file mana yang dipilih dari baris perintah, saya berhasil melakukan ini untuk Angular 7.
Singkatnya, Anda perlu menginstal
@angular-devkit/build-angular:browser
dan kemudian membuat plugin webpack khusus untuk melewati file tes regex melalui. Sebagai contoh:angular.json - ubah pembuat uji dari
@angular-devkit/build-angular:browser
dan atur file konfigurasi khusus:extra-webpack.config.js - buat konfigurasi webpack yang membaca regex dari baris perintah:
test.ts - edit spec
Kemudian gunakan sebagai berikut untuk mengganti default:
Saya mendokumentasikan backstory di sini , permintaan maaf sebelumnya untuk jenis dan mis-link. Terima kasih atas jawaban di atas oleh @ Aish-Anu karena mengarahkan saya ke arah yang benar.
sumber
Ini berfungsi untuk saya dalam Angular 7. Ini didasarkan pada opsi --main dari perintah ng. Saya tidak yakin apakah opsi ini tidak berdokumen dan mungkin dapat berubah, tetapi itu berfungsi untuk saya. Saya menaruh baris di file package.json saya di bagian skrip. Di sana menggunakan opsi --main dengan perintah tes ng, saya menentukan path ke file .spec.ts yang ingin saya jalankan. Sebagai contoh
Anda dapat menjalankan skrip saat menjalankan skrip tersebut. Saya menjalankannya di Webstorm dengan mengklik "test 1" di bagian npm.
sumber
Saya memecahkan masalah ini untuk diri saya sendiri dengan menggunakan gerutuan. Saya memiliki skrip kasar di bawah ini. Apa yang dilakukan skrip adalah mengambil parameter baris perintah dari pengujian khusus untuk menjalankan dan membuat salinan test.ts dan menempatkan nama pengujian khusus ini di sana.
Untuk menjalankan ini, instal dulu grunt-cli menggunakan:
Masukkan dependensi mendengus di bawah ini di package.json Anda:
Untuk menjalankannya simpan file grunt di bawah ini sebagai Gruntfile.js di folder root Anda. Kemudian dari command line jalankan sebagai:
Ini akan menjalankan app.component.spec.ts.
File kasar adalah sebagai berikut:
sumber
Menambahkan ini untuk orang-orang seperti saya yang sedang mencari cara untuk menjalankan satu spec di Angular dan menemukan ini SO.
Menurut dokumen Angular terbaru (v9.0.6 pada saat penulisan),
ng test
perintah memiliki--include
opsi di mana Anda dapat menentukan direktori*.spec.(ts|tsx)
file atau hanya satu.spec.(ts|tsx)
file itu sendiri.https://angular.io/cli/test
sumber
Hanya perubahan kecil yang diperlukan dalam
test.ts
file di dalam folder src:Sini,
test-example
adalah nama file yang harus kita jalankanDengan cara yang sama, jika Anda hanya perlu menguji file layanan, Anda dapat mengganti nama file seperti "/ test-example.service"
sumber
Ini berhasil bagi saya dalam setiap kasus:
Namun, saya biasanya mendapat "TypeError: Tidak dapat membaca properti 'ngModule' of null" untuk ini:
Versi @ angular / cli 10.0.4
sumber