Saat ini jika saya menjalankan rangkaian pengujian menggunakan rake spec
saya mendapatkan kesalahan:
1) SegmentsController GET 'index' harus bekerja Kegagalan / Kesalahan: dapatkan 'indeks' metode `` lokal '' untuk # # ./spec/controllers/segments_controller_spec.rb:14: di `blok (3 level) di '
Ini normal karena saya memiliki kesalahan :)
Masalahnya adalah jejaknya tidak terlalu membantu. Saya tahu itu rusak segments_controller_spec.rb
, baris 14, tetapi di sinilah saya menyebutnya tes:
### segments_controller_spec.rb:14
get 'index'
Saya lebih suka memiliki pemutusan baris aktual dan jejak lengkap, bukan bagian dalam folder spesifikasi.
Berlari dengan --trace
tidak membantu.
Jawaban:
Anda harus menjalankan rspec dengan
-b
opsi untuk melihat jejak latar lengkapsumber
Alternatif lain (yang lebih mudah) adalah mengedit
.rspec
file, dan menambahkanbacktrace
opsi. Ini akan terlihat seperti ini:Itu akan memberi Anda backtrace penuh. Semoga ini membantu.
sumber
color
. Saya pikir jika Anda mengejanya,colour
lelucon Monty Python mungkin munculIni juga akan berfungsi:
sumber
Pendekatan lainnya adalah dengan menghapus semua pola pengecualian lacak balik di
spec_helper.rb
. Aku seperti solusi ini yang paling karena saya bisa menyimpan semua pengaturan RSpec di satu tempat dan menyingkirkan.rspec file
atau eksplisit--backtrace
dalam.travis.yml
.sumber
Saya tidak tahu bagaimana membuat kesalahan pengontrol muncul di rspec. Terkadang itu muncul tetapi saya tidak tahu kondisi apa yang menyebabkannya muncul. Berikut adalah cara untuk melihat kesalahan dengan cukup cepat:
Buka sesi terminal lain dan jalankan:
Kemudian kembali ke sesi terminal dan jalankan hanya spesifikasi yang memiliki kesalahan:
Kembali ke ekor log dan Anda akan melihat kesalahan, semoga tanpa terlalu banyak hal lain di sekitarnya (karena Anda menjalankan pengujian yang gagal dengan sendirinya).
sumber
Satu opsi lagi ketika semuanya gagal adalah dengan menambahkan blok penyelamatan dan mencetak tumpukan percobaan atau menambahkan pernyataan pry yang mengikat di sana dan menggunakannya
show-stack
.sumber
begin
danrescue
sebagai pernyataan luar dari metode aksi pengontrol. Atau gunakanrescue_from
.git diff
sebelum melakukannya akan menghemat daging Anda.