Saya memiliki banyak spesifikasi gagal dari perubahan arsitektur yang agak besar. Saya ingin memperbaiki mereka satu per satu dengan memberi tag masing-masing dengan 'fokus'.
Apakah jasmine.js memiliki fitur seperti ini? Saya bersumpah saya membaca pada satu titik yang benar, tetapi saya tidak melihatnya di dokumen.
Jawaban:
Anda dapat menjalankan satu spec dengan menggunakan url untuk spec
Sekarang Anda dapat menjalankan hanya seluruh spek dengan url ini
http://localhost:8888?spec=MySpec
dan tes pertama dengannyahttp://localhost:8888?spec=MySpec+function+1
sumber
describe("MySpec", ...)
dan tidak satu ini:describe("MySpec blah blah", ...)
? Tampaknya melakukan pertandingan substring.http://localhost:8888?spec=function+1
harus bekerja juga (seringkali tidak perlu menentukan MySpec)fdescribe
,fit
Saat menggunakan Karma, Anda hanya dapat mengaktifkan satu tes dengan
fit
ataufdescribe
(iit
danddescribe
dalam Jasmine sebelum 2.1).Ini hanya berjalan
Spec1
:Ini hanya berjalan
testA
:sumber
fdescribe
danfit
: github.com/jasmine/jasmine/commit/…iit
danddescribe
merupakan tambahan dari Karma, bukan Jasmine.xit
danfit
menjadiit
sulit dibaca dan rawan kesalahan?Dalam inti sejak 2.1 dengan
fit
danfdescribe
.sumber
Bagi siapa pun yang menemukan ini, pendekatan yang lebih baik, yang dapat Anda atur dari kode itu sendiri, adalah dengan menggunakan plugin ini: https://github.com/davemo/jasmine-only
Ini memungkinkan Anda mengatur eksklusivitas spesifikasi pada kode seperti ini:
Telah ada diskusi panjang untuk mendapatkan ini ditambahkan ke Jasmine core, lihat: https://github.com/pivotal/jasmine/pull/309
Jika Anda menggunakan Jasmine melalui Karma / Testacular Anda seharusnya sudah memiliki akses ke
ddescribe()
daniit()
sumber
fdescribe
danfit
- "f" yang berarti "fokus". Lihat juga jasmine.github.io/2.1/focused_specs.htmlAda beberapa cara untuk melakukannya.
Ada: Spesifikasi Fokus fitur Jasmine (2.2): http://jasmine.github.io/2.2/focused_specs.html
Spesifikasi fokus akan menjadikannya satu-satunya spesifikasi yang berjalan. Setiap spec yang dinyatakan dengan fit difokuskan.
Namun, saya tidak terlalu suka ide mengedit tes saya (cocok dan menggambarkan) untuk menjalankannya secara selektif. Saya lebih suka menggunakan pelari uji seperti karma yang dapat menyaring tes menggunakan ekspresi reguler.
Berikut ini contoh menggunakan gerutuan .
Jika Anda menggunakan gulp (yang merupakan pelari tugas favorit saya), Anda dapat meneruskan args ke gulp -karma dengan yargs dan mencocokkan pola dengan mengatur konfigurasi karma.
Agak seperti ini:
Lihat inti saya: https://gist.github.com/rimian/0f9b88266a0f63696f21
Jadi sekarang, saya dapat menjalankan satu spec menggunakan deskripsi:
Uji coba lokal saya: (Eksekusi 1 dari 14 (dilewati 13))
Lihat juga: https://github.com/karma-runner/karma-jasmine
sumber
Anda dapat membuat semua spesifikasi Anda di muka tetapi menonaktifkannya dengan
xdescribe
danxit
sampai Anda siap untuk mengujinya.sumber
Dengan Jasmine yang berdiri sendiri (2.0.0), pada spec_runner.htlm, saya bisa mengklik spec tertentu dan fokus pada spec yang satu itu. Saya seharusnya memperhatikan fitur ini sebelumnya.
sumber
Tidak persis apa yang Anda minta tetapi menambahkan
iit
hanya akan menguji spesifikasi tertentu dan mengabaikan semua yang lain dalam file,ddescribe
bekerja dengan cara yang sama. Jadi Anda bisa fokus pada spec tertentu menggunakaniit
atauddescribe
sumber
Ini adalah jawaban yang paling sederhana dengan contoh praktis. Bahkan dalam deskripsi Anda dapat menjalankan beberapa blok itu menggunakannya. f berarti fokus.
Juga di blok tidak ada deskripsi yang hanya menggambarkan, Anda dapat memilih hanya itu blok dengan menandainya sebagai cocok.
Silakan jalankan kode di bawah ini dan amati log konsol, baca juga komentar dalam kode. Baca artikel penulis ini juga membantu. https://davidtang.io/2016/01/03/controlling-which-tests-run-in-jasmine.html
sumber