似乎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中也没有例外。我的模板有很少的部分和布局。没有任何线索,相当调查。
是否有任何秘密插头可以让黄瓜显示完全错误?
答案 0 :(得分:9)
正确答案(感谢cuke google group)在运行黄瓜时使用--backtrace
选项。
答案 1 :(得分:1)
您可以在features / support.env中注释掉以下行以使用Rails错误处理。
Cucumber::Rails.bypass_rescue
你也可以使用tail -f log / test.log来关注日志。
答案 2 :(得分:-1)
也许帮助不大,但@cart对象似乎没有被实例化。检查你的控制器是否正确。