Saya memiliki spesifikasi pengujian yang describes
kelas dan dalamnya memiliki variasi contexts
masing-masing dengan berbagai it
blok.
Apakah ada cara agar saya dapat menonaktifkan context
sementara?
Saya mencoba menambahkan pending "temporarily disabled"
panggilan di bagian paling atas dalam a context
Saya ingin menonaktifkan, dan saya memang melihat sesuatu tentang tertunda ketika saya menjalankan spesifikasi tetapi kemudian terus menjalankan sisa tes.
Inilah yang saya miliki:
describe Something
context "some tests" do
it "should blah" do
true
end
end
context "some other tests" do
pending "temporarily disabled"
it "should do something destructive" do
blah
end
end
end
tapi seperti yang saya katakan, itu hanya melanjutkan untuk menjalankan tes di bawah panggilan yang tertunda.
Pencarian membawa saya ke utas milis ini di mana pembuat (?) Dari rspec mengatakan itu mungkin di rspec 2, yang saya jalankan. Saya kira itu berhasil tetapi tidak memiliki efek yang diinginkan untuk menonaktifkan semua tes berikut, yang saya pikirkan ketika saya melihat pending
panggilan.
Apakah ada alternatif atau saya salah melakukannya?
describe 'XXXXX' do .... end
describe 'XXXXX' do
. Bekerja seperti pesona, terima kasih @Pyro!Gunakan filter pengecualian . Dari halaman itu: Di
spec_helper.rb
(ataurails_helper.rb
)Dalam pengujian Anda:
Saat saya menjalankan "rspec ./spec/sample_spec.rb --format doc"
Kemudian outputnya harus berisi "contoh grup 2 1"
Dan keluarannya tidak boleh berisi "contoh grup 1 1"
Dan hasilnya tidak boleh berisi "contoh grup 1 2"
sumber
Lihat apa yang Anda pikirkan tentang ini:
Saya ingin melihat alasan dengan item saya yang tertunda saat saya menonaktifkan sesuatu untuk "sementara". Mereka berfungsi sebagai komentar kecil / TODO yang disajikan secara teratur daripada terkubur dalam komentar atau contoh / file yang dikecualikan.
Mengubah
it
kepending
atauxit
cepat dan mudah, tetapi saya lebih suka konstruksi hash. Ini memberi Anda dokumentasi setiap proses, merupakan drop-in (tidak mengubah deskripsikan / konteks / itu jadi saya harus memutuskan apa yang akan digunakan lagi nanti), dan dengan mudah dihapus jika keputusan dibuat atau pemblokir dihapus .Ini bekerja sama untuk contoh kelompok dan individu.
sumber
pending:
danskip:
, di rspec 3.6.0. Sepertinya solusi terbaik bagi saya. di rspec3 tertunda masih menjalankan tes, tetapiskip
tidak (bagaimanapun Anda menerapkannyaskip
).yang lainnya. https://gist.github.com/1300152
gunakan xdescribe, xcontext, xit untuk menonaktifkannya.
Memperbarui:
Sejak rspec 2.11, ini termasuk xit secara default. jadi kode baru akan menjadi
Pemakaian
sumber
Gunakan menunggu, bukan mendeskripsikan. Jika blok Anda adalah:
Anda dapat melewati seluruh blok dengan:
sumber
sumber
Hanya untuk menjelaskan apa yang terjadi dengan kode Anda. Termasuk di mana Anda memilikinya, itu hanya akan dievaluasi (dan karenanya dijalankan) ketika file dimuat selama startup. Bagaimanapun Anda membutuhkannya untuk dijalankan saat tes dijalankan. Itulah mengapa jawaban menyarankan untuk meletakkan
pending
(RSpec 2) atauskip
(RSpec 3) ke dalam satubefore
blok.sumber