8

cukeは完全なエラーメッセージを表示しないようです(少なくともテンプレートで問題が発生した場合)。これにより、問題を特定するのが非常に困難になります。

エラーが発生した場合の出力は次のとおりです。

 
..。
    そして、私はチェックアウトページにいます#features / step_definitions / webrat_steps.rb:6
      あなたはそれを予期していなかったときにnilオブジェクトを持っています!
      nil.itemsの評価中にエラーが発生しました(ActionView :: TemplateError)
      features / manage_orders.feature:9:in`そして私はチェックアウトページにいます'
..。

そして、同じ問題がブラウザで再現されたときに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にも例外はありません。そして、私のテンプレートにはいくつかのパーシャルとレイアウトがあります。手がかりがないので、かなりの調査。

キュウリに完全なエラーを表示させるために引っ張る秘密のプラグはありますか?

4

3 に答える 3

10

正解(cuke google groupのおかげで)は、--backtraceキュウリを実行するときにオプションを使用しています。

于 2009-07-01T21:30:10.760 に答える
1

Railsのエラー処理を使用するには、features/support.envの次の行をコメントアウトできます。

Cucumber::Rails.bypass_rescue

また、tail -f log / test.logを使用して、ログを監視することもできます。

于 2009-07-25T08:49:56.550 に答える
-1

あまり役に立たないかもしれませんが、@cartオブジェクトはインスタンス化されていないようです。コントローラーをチェックしてください。

于 2009-06-29T22:12:30.163 に答える