W tej chwili, jeśli uruchomię mój zestaw testów za pomocą rake spec
, otrzymuję błąd:
1) SegmentsController GET „index” powinien działać Niepowodzenie / błąd: pobierz „indeks” niezdefiniowana metoda `locale 'dla # # ./spec/controllers/segments_controller_spec.rb:14: w `bloku (3 poziomy) w '
To normalne, bo mam błąd :)
Problem w tym, że ślad nie jest zbyt pomocny. Wiem, że się włamał segments_controller_spec.rb
, wiersz 14, ale tak właśnie nazywam test:
### segments_controller_spec.rb:14
get 'index'
Wolałbym mieć faktyczne łamanie linii i pełny ślad, a nie część w folderze specyfikacji.
Bieganie z --trace
nie pomaga.
Odpowiedzi:
Musisz uruchomić rspec z
-b
opcją, aby zobaczyć pełne ślady wsteczneźródło
Inną (łatwiejszą) alternatywą jest edycja
.rspec
pliku i dodaniebacktrace
opcji. Powinien wyglądać mniej więcej tak:To da ci pełny ślad. Mam nadzieję że to pomoże.
źródło
color
. Myślę, że jeśli to przeliterujesz,colour
może pojawić się żart Monty PythonaTo również zadziała:
źródło
Innym podejściem jest wyczyszczenie wszystkich wzorców wykluczania śledzenia wstecznego w programie
spec_helper.rb
. Najbardziej podoba mi się to rozwiązanie, ponieważ jestem w stanie zachować wszystkie ustawienia RSpec w jednym miejscu i pozbyć się.rspec file
lub jawnie--backtrace
w.travis.yml
.źródło
Nie wiem, jak sprawić, by błąd kontrolera pojawił się w rspec. Czasami się pojawia, ale nie wiem, w jakich warunkach się pojawia. Oto sposób, aby dość szybko zobaczyć błąd:
Otwórz inną sesję terminala i uruchom:
Następnie wróć do sesji terminala i uruchom specyfikację, w której wystąpił błąd:
Wróć do końca dziennika i powinieneś zobaczyć błąd, miejmy nadzieję, że bez otaczających go zbyt wielu innych rzeczy (ponieważ sam przeprowadziłeś test zakończony niepowodzeniem).
źródło
Jeszcze jedną opcją, gdy wszystko inne zawiedzie, jest po prostu dodanie bloku ratunkowego i wydrukowanie stosu spróbuj lub dodanie tam wiążącej instrukcji podważenia i użycie
show-stack
.źródło
begin
andrescue
block jako zewnętrzną instrukcję metody działania kontrolera. Lub użyjrescue_from
.git diff
przed podjęciem decyzji, co pozwoli zaoszczędzić bekon.