gpt4 book ai didi

ruby-on-rails - 如何使用延迟加载程序捕获 Capybara Feature JS 测试的服务器端错误?

转载 作者:数据小太阳 更新时间:2023-10-29 07:38:53 24 4
gpt4 key购买 nike

版本:

  • rails 5.0.2
  • rspec 3.5.0
  • rspec-rails 3.5.1
  • capybara 2.12.1(带 chromedriver/selenium 用于 JS 测试)
  • ruby 2.3.3
  • gitlab-ci

过去(和期望的)行为

当我在功能测试中遇到错误时,堆栈跟踪和错误将存储在我的机器和我们的 CI 控制台的结果中。

app/models/dancer.rb 第 36 行 nilClass 的未定义方法“#dance”

当前行为

我们最近更新了代码库以对特定数据表和特定 View 使用“延迟加载”(或服务器端加载)。这意味着在 JS/功能测试中,如果 View 中的某些内容未正确加载,我们不会呈现错误,而是有一个永不停止旋转的旋转器和超时错误(或未找到的东西)。

现在,如果我正在使用 Rails 服务器开发一个页面,而延迟加载程序的 POST 请求出现问题,我可以直接跳到我的终端并检查堆栈跟踪和发生了什么。

我如何更新我的 Rspec/Capybara 测试以使其更详细,并且当这些服务器端错误发生在延迟加载程序请求时,实际上将其作为测试失败的原因,就像过去一样?

衷心感谢您为此提供的任何帮助,并且非常乐意跟进您可能需要的任何其他信息。

最佳答案

如果服务器中出现错误,请确保您没有在测试环境中安装任何能够捕获错误并显示漂亮页面(网络控制台、更好的错误等)的 gem,并确保您有 Capybara.raise_server_errors = true(这是默认设置,因此请确保您没有将其设置为 false)。使用该配置,Capybara 尝试发送给驱动程序的下一个命令应该会导致 Capybara 引发错误。如果错误被某些东西(如上面提到的 gems)捕获并被记录下来,那么 Capybara 就无法知道它。

关于ruby-on-rails - 如何使用延迟加载程序捕获 Capybara Feature JS 测试的服务器端错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43540427/

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