2013-01-05 36 views
5

我为我的测试使用了webkit的webkit,但由于某种原因,当测试失败时,它显示错误,但不是代码中实际发生的位置。为什么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

我期待看到的是line number r和功能在出现错误:

应用程序/控制器/ invoices_controller.rb:30:在'秀”

我似乎无法找到与此相关的在谷歌任何东西。我可能使用了错误的术语。任何人都知道如何解决这个问题?

+0

你可能已经搬家了..但你有没有想出解决方案?我有同样的问题,找不到解决方案 – lnreddy

+0

啊..我只注意到,当我把js:true时,它没有显示出确切的错误跟踪。当我删除js:true时,它会显示发生错误的确切位置。 – lnreddy

回答

7

基本上,水豚没有关于应用程序的知识,因为它运行在不同的过程中。你可以用这里描述的技巧来解决这个问题https://gist.github.com/1443408

+0

谢谢,该链接看起来很有希望! –

3

问题是,实际页面不是由于错误而呈现的,而是出现内部服务器错误。因此Internal Server Error undefined method...您正在测试的页面的内容。由于测试框架仅测试您在页面上实际看到的内容,因此RSpec/Capybara无法告诉您它在哪里发生,而这正是您所看到的(如您在运行save_and_open_page时确认的那样)。

要追踪错误,您应该查看您的rails错误日志或从中运行它的控制台/终端。没有更多的信息,我无法帮助你追踪错误。

希望有所帮助。

+0

奇怪的是,在我正在处理的另一个应用程序中,它在终端中完全显示它打破的行号! –

相关问题