2013-01-05 8 views
5

テスト用にWebkitでCapybaraを使用していますが、何らかの理由でテストに失敗したときにエラーが表示されます。RSpec/Capybaraにエラーが発生した場所が表示されないのはなぜですか?

Failures: 

    1) online shopping - sign up 
    Failure/Error: page.should have_content 'Payment added successfully' 
     expected there to be content "Payment added successfully" in "Internal Server Error undefined method `client_id' for #<InvoicePayment:0x007fbd5b834008> WEBrick/1.3.1 (Ruby/1.9.3/2012-04-20) at 127.0.0.1:60324" 
    # ./spec/requests/online_shopping_spec.rb:140:in `block (2 levels) in <top (required)>' 

、それが発生した場所の情報無しで、それだけでエラーを紹介しますsave_and_open_pageを使用して:

内部サーバーエラー

未定義のメソッドが `# は「CLIENT_ID WEBrickに/ 1.3.1(Ruby/1.9.3/2012-04-20)at 127.0.0.1:60324

私が見たいと思うのは、行番号rと機能にエラーが発生しました:

アプリ/コントローラ/ invoices_controller.rb:30: `ショー」

に私はGoogleで、これに関連する何かを見つけるように見えることはできません。私はおそらく間違った命名法を使用しています。誰でもこれを修正する方法を知っていますか?

+0

あなたはおそらく動いてきましたが、解決策を見つけましたか?私は同じ問題があり、解決策を見つけることができません – lnreddy

+0

ああ..私はjs:trueを置くと、正確なエラートレースが表示されないことに気付きました。 js:trueを削除すると、エラーが発生した正確な行が表示されます。 – lnreddy

答えて

7

基本的にcapybaraは、さまざまなプロセスで実行されているため、このアプリについての知識はありません。この問題を回避するには、こちらの説明を参考にしてくださいhttps://gist.github.com/1443408

+0

ありがとうございます、そのリンクは有望そうです! –

3

問題は、実際のページがエラーのためにレンダリングされず、代わりに内部サーバーエラーが発生していることです。したがって、Internal Server Error undefined method...は、です。あなたがテストしているページの内容です。 RSpec/Capybaraは、テストフレームワークがページ上に実際に表示されているものをテストするだけで、どこに表示されているのか正確にテストするので(どこでsave_and_open_pageを実行したかを確認したので)

エラーを追跡するには、レールエラーログ、またはそれを実行しているコンソール/ターミナルを見てください。これ以上の情報がなければ、私はあなたがエラーを追跡するのを手助けすることはできません。

希望に役立ちます。

+0

私は奇妙なことは、私が取り組んでいる他のアプリケーションでは、ターミナル内で正確に行番号が分かれていると言います! –

関連する問題