水豚服务器&服务器

时间:2017-04-21 20:16:59

标签: ruby-on-rails capybara ruby-on-rails-5

出于某种原因,我的一个黄瓜测试似乎在恶作剧驱动程序和rails服务器上都失败了。

我对浏览器崩溃进行了全面跟踪,但在服务器端几乎没有任何内容。

当我打开Capybara屏幕截图时,我只看到

  

内部服务器错误   nil的未定义方法name:NilClass

当我拖尾test.log

  

在0ms内完成500内部服务器错误(Elasticsearch:0.0ms)

(并没有追踪)

我试过了

  • 设置config.action_dispatch.show_exceptions = true
  • b标志(但它只显示了Capybara错误的详细跟踪
  • (我的配置级别设置为:我的环境文件中已经调试)

如何在服务器端获得完整的回溯?

修改

  • Capybara 2.13.0
  • Rails 5.0.2
  • 在backtrace_silencers中评论的所有内容

2 个答案:

答案 0 :(得分:1)

我从this answer获得了一些东西!

因此解决方案是允许在ActionController :: Base中挽救异常。在我的env文件中,我有以下几行误导

# There are two ways to allow Rails to rescue exceptions:
#
# 1) Tag your scenario (or feature) with @allow-rescue
#
# 2) Set the value below to true. Beware that doing this globally is not
# recommended as it will mask a lot of errors for you!
#
ActionController::Base.allow_rescue = false

通过添加@ allow-rescue标记,我在test.log中显示了更全面的错误跟踪,以及前端错误视图

答案 1 :(得分:0)

如果您(像我一样)不使用黄瓜,但是水豚this answer也可能会帮助您。

config/environments/test.rb组中

config.action_dispatch.show_exceptions = true