Seems like cuke doesn't show the full error message (at least when problem occurs in template) which makes it really hard to locate the problem.
Here is what it outputs on some error:
... 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' ...
And here is what rails shows when the same problem is reproduced in browser:
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>
The former is a bit too neat. No exception in cucumber.log either. And my template has got few partials and a layout. Given no clues, quite an investigation.
Is there any secret plug to pull to get cucumber show full error?
Correct answer (thanks to cuke google group) is using --backtrace
option when running cucumber.
You could comment out following line in your features/support.env to use Rails error handling.
Cucumber::Rails.bypass_rescue
You could also use tail -f log/test.log to keep an eye on the logs.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With