gpt4 book ai didi

ruby-on-rails - 如何使 Capybara 中的 rails 错误显示在 rspec 功能中?

转载 作者:行者123 更新时间:2023-12-05 03:12:19 24 4
gpt4 key购买 nike

我正在使用 capybara 来运行我的 rspec 功能。问题在于,当运行规范时 rails 堆栈中发生错误时,错误不会“传递”到 rspec 并导致测试失败。错误页面由 rspec 生成和检查。

因此,我不会因为规范错误而立即失败。我仅在查找内容或尝试填写错误页面上未显示的字段时收到错误。

这不是我想要的。我希望在 Rails 堆栈( Controller 、 View 等)中遇到的错误导致 rspec 立即失败。

我该如何解决?

最佳答案

Capybara 能够将服务器错误作为测试失败而引发,前提是它正确挂接到 Rails(请参阅:the last bullet point on the "Gotchas" section of the README)。

确保您:

  • 正在您的 Rails 环境中运行您的 Capybara 测试
  • 在您的 spec_helper.rbrails_helper.rb 文件中有 require 'capybara/rails'
  • 不需要运行您的实际服务器来运行测试(如果您这样做,则表明您的设置不正确)。
  • 在您的测试中访问相对而非绝对的 URL(例如,visit 'http://localhost:3000/mypage 是错误的,visit '/mypage' 是对)。

如果以上都是正确的,并且您仍然看到该行为,则您的设置可能有其他问题。尝试将您的驱动程序改回默认值 (Rack::Test) 并查看问题是否仍然存在。

编辑:如以下评论所述,这里的问题是 better_errors gem 正在测试环境中加载,它在 Capybara 和 Rspec 获得有机会看到错误。将它移动到 Gemfile 中的 development-only 组解决了这个问题。 This thread保留了答案。

关于ruby-on-rails - 如何使 Capybara 中的 rails 错误显示在 rspec 功能中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34003842/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com