Saya dapat menjalankan semua tes dalam satu file dengan:
rake test TEST=path/to/test_file.rb
Namun, jika saya ingin menjalankan hanya satu tes di file itu, bagaimana saya melakukannya?
Saya mencari fungsionalitas yang mirip dengan:
rspec path/to/test_file.rb -l 25
ruby
ruby-on-rails-3
minitest
Josiah Kiehl
sumber
sumber
rails test path/to/test_file.rb:25
melihat @Derek_Hill ans - diambil dari guides.rubyonrails.org/testing.html#the-rails-test-runnerJawaban:
Ya! Gunakan permata "m" Nick Quaranto . Dengan itu Anda bisa mengatakan:
sumber
m
saat ini tidak bekerja Minitest 5.0 ini .Perintahnya harus:
sumber
TESTOPTS=...
saja-v
dilakukan?Sudahkah Anda mencoba:
sumber
specify {}
? Itu hanya muncul sebagaitest_0001_anonymous
... dan mungkin ada beberapatest_0001_anonymous
s jika sintaks yang sama digunakan dalam beberapa blok uraian ... ada saran untuk menjalankan tes tunggal di lingkungan seperti ini?cannot load such file -- test_helper
.ruby -Itest path/to/tc_file.rb --name test_method_name
like stackoverflow.com/a/15714985/327786bundle exec ruby -I lib path/to --name test_fit
Tidak perlu permata:
ruby -Itest test/lib/test.rb --name /some_test/
Sumber: http://blog.arvidandersson.se/2012/03/28/minimalicous-testing-in-ruby-1-9
sumber
Ini adalah salah satu hal yang mengganggu saya tentang
string name definition
tes dalam.Ketika Anda memiliki:
Anda selalu tahu bagaimana nama tes Anda sehingga Anda dapat menjalankannya seperti ini:
Tetapi ketika Anda memiliki sesuatu seperti:
Anda tidak pernah yakin bagaimana tes ini benar - benar dinamai secara internal sehingga Anda tidak dapat menggunakan
-n
opsi hanya secara langsung.Untuk mengetahui bagaimana tes ini dinamai secara internal, Anda hanya memiliki opsi: jalankan seluruh file untuk mencoba mencari tahu dalam log.
Solusi saya adalah (sementara) menambahkan sesuatu ke nama tes yang sangat unik seperti:
dan kemudian gunakan versi RegEx dari parameter '-n' seperti:
sumber
__method__
dalam konteks metode yang sedang dijalankan (pengujian Anda, dalam hal ini). Implementasi saat ini menghasilkan sesuatu seperti"does not break my stuff".gsub(" ", "_").prepend("test_")
. Kemudian jalankan, misalnyaruby -Itest test/integration/stuff_flow_test.rb --name test_does_not_break_my_stuff
,.Jika Anda menggunakan MiniTest dengan Rails 5+, cara terbaik untuk menjalankan semua tes dalam satu file adalah:
Dan untuk satu pengujian (mis. Pada baris 25):
Lihat http://guides.rubyonrails.org/testing.html#the-rails-test-runner
sumber
Anda dapat menggunakan ini untuk menjalankan satu file:
Saya juga menggunakan
untuk tampilan yang lebih baik.
sumber
Ada 2 cara untuk melakukannya:
Rake::TestTask
Target hack untuk menggunakan loader tes yang berbeda.Rake::TestTask
(mulai rake 0.8.7) secara teoritis dapat meneruskan opsi tambahan keMiniTest::Unit
dengan a"TESTOPTS=blah-blah"
opsi baris perintah, misalnya:Dalam praktiknya, opsi
--name
(filter untuk nama uji) tidak akan berfungsi, karena menyapu internal. Untuk memperbaikinya Anda harus menulis tambalan monyet kecil di Rakefile Anda:Tambalan ini mengharuskan Anda membuat file
test/my-minitest-loader.rb
:Untuk mencetak semua opsi yang memungkinkan untuk Minitest, ketik
sumber
rake
(0.9.2) dan tidak ada tambalan monyet yang diperlukan.TESTOPTS="--name test_foobar"
tidak berhasil, tetapiTESTOPTS="--name=test_foobar"
berfungsi.Anda dapat lulus
--name
untuk menjalankan tes dengan namanya atau angka di dalam namanya:misalnya:
Bendera ini didokumentasikan dalam README Minitest .
sumber
Jika Anda menggunakan Turn gem dengan minitest, pastikan untuk menggunakan
Turn.config.pattern
opsi karena Turn Minitest runner tidak menghargai opsi --name di ARGs.sumber
name
opsi. Terima kasih! Karena Giliran itu tidak lagi dipertahankan, saya berencana untuk bermigrasi ke reporterAda permata yang tidak tepat:
minitest-line
.dari https://github.com/judofyr/minitest-line#minitest-line
sumber
saya menggunakan
ruby /path/to/test -n /distinguishable word/
Sunting:
-n
adalah singkatan untuk--name
.distinguishable word
bisa berupa string apa pun yang Anda masukkan dalam deskripsi tes, saya biasanya menggunakan kata acak yang saya tahu tidak akan ada dalam deskripsi tes lain.sumber
-n
parameter itu?--name
. Hanya hal yang mudah. Terutama berguna dengan / regex /, saya biasanya hanya memasukkan beberapa kata acak ke dalam nama tes (yang saya tahu tidak akan ada dalam deskripsi tes lain).Mengikuti akan berhasil
Ini bisa dijalankan oleh
sumber
rails test path/to/test_file.rb:25
akan melakukannyasumber