Как сделать так, чтобы огурец показывал полное сообщение об ошибке (рельсы)?

Похоже, что cuke не отображает полное сообщение об ошибке (по крайней мере, когда проблема возникает в шаблоне), что очень затрудняет обнаружение проблемы.

Вот что он выводит при какой-то ошибке:

 
...
    And I am on checkout page                                   # features/step_definitions/webrat_steps.rb:6
      You have a nil object when you didn't expect it!
      The error occurred while evaluating nil.items (ActionView::TemplateError)
      features/manage_orders.feature:9:in `And I am on checkout page'
...

А вот что показывает rails при воспроизведении той же проблемы в браузере:

Showing app/views/cart/show.erb where line #46 raised:

You have a nil object when you didn't expect it!
The error occurred while evaluating nil.items

Extracted source (around line #46):

43: </script>
44: 
45: <% ths = %w{th_title th_price th_subtotal th_quantity}.collect {|th| t th.intern} %>
46: <% table(@cart.items, ths) do |cart_item, style| -%>
47:   <tr class="<%= style %>">
48:       <td width="60%"><%=h cart_item.title %></td>
49:       <td width="20%"><%=number_to_currency cart_item.price %></td>

Первое слишком аккуратно. Не исключение и в cucumber.log. А в моем шаблоне есть несколько деталей и макет. Без подсказок, настоящее расследование.

Есть ли какой-нибудь секретный штекер, который нужно вытащить, чтобы огурец показывал полную ошибку?


person artemave    schedule 29.06.2009    source источник
comment
Название вашего вопроса могло бы стать хорошей песней или названием эпизода сериала, но не таким вопросом, поэтому я изменил его :)   -  person karim79    schedule 30.06.2009


Ответы (3)


Правильный ответ (благодаря группе cuke google) использует параметр --backtrace при запуске огурца.

person artemave    schedule 01.07.2009

Вы можете закомментировать следующую строку в файле features / support.env, чтобы использовать обработку ошибок Rails.

Cucumber::Rails.bypass_rescue

Вы также можете использовать tail -f log / test.log, чтобы следить за журналами.

person Waseem    schedule 25.07.2009

Может быть, это не очень поможет, но объект @cart, похоже, не был создан. Проверьте свой контроллер, чтобы убедиться, что он есть.

person Jonas Elfström    schedule 29.06.2009
comment
Проблема не в самой ошибке, а в том, что cuke не помогает в деталях отчета. - person artemave; 30.06.2009
comment
Извини за это. Что ж, вы почти получили ошибку Rails и номер строки теста. Можно подумать, что имя переменной nil в nil. Элементы, возможно, могли быть как-то вставлены туда, но в противном случае я не знаю, чего еще ожидать от Cucumber? - person Jonas Elfström; 30.06.2009