Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用capybara和selenium获取要显示的rails异常_Ruby On Rails_Selenium_Rspec_Integration Testing_Capybara - Fatal编程技术网

Ruby on rails 使用capybara和selenium获取要显示的rails异常

Ruby on rails 使用capybara和selenium获取要显示的rails异常,ruby-on-rails,selenium,rspec,integration-testing,capybara,Ruby On Rails,Selenium,Rspec,Integration Testing,Capybara,在使用capybara和selenium在rails中运行集成测试时,如果引发异常,将显示一个空白的白色页面,而不是通常的带有堆栈跟踪的异常屏幕。有没有办法让capybara显示堆栈跟踪页面?这很可能是因为堆栈跟踪仅在开发执行模式(或“环境”)中显示,并且您的集成测试在生产环境中运行 当然,通过调整生产模式设置,可以使其显示异常。但这不是正确的方法。最好的方法是: 将异常和堆栈跟踪记录到日志中 文件或日志服务器(hoptoad?) 用户无法看到它,但您 能 捕获异常并呈现 错误页 希望这有帮

在使用capybara和selenium在rails中运行集成测试时,如果引发异常,将显示一个空白的白色页面,而不是通常的带有堆栈跟踪的异常屏幕。有没有办法让capybara显示堆栈跟踪页面?

这很可能是因为堆栈跟踪仅在开发执行模式(或“环境”)中显示,并且您的集成测试在生产环境中运行

当然,通过调整生产模式设置,可以使其显示异常。但这不是正确的方法。最好的方法是:

  • 将异常和堆栈跟踪记录到日志中 文件或日志服务器(hoptoad?) 用户无法看到它,但您 能
  • 捕获异常并呈现 错误页

希望这有帮助。致以最诚挚的问候。

我无法通过Webrick或Thin获得堆栈跟踪,但我最终的解决方法是使用Mongrel,它可以正确地将堆栈跟踪打印到stderr

使用capybara 0.4.1.2或更高版本,您可以将capybara配置为使用mongrel,如下所示:

Capybara.server do |app, port|
  require 'rack/handler/mongrel'
  Rack::Handler::Mongrel.run(app, :Port => port)
end

马特的解决方案对我不起作用,但正是这个要点 是的

更详细地解释了它的原因
发生并解释给定gist的作用

我认为人们通常在:测试环境中运行他们的水豚测试。你可以在spec_helper.rb或env.rb:^^中使用monkey patch Thin。这个补丁现在已经被合并到最新版本的Thin中。这是唯一对我有效的解决方案。谢谢你把它指出来