加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何使用延迟加载程序捕获Capybara Feature JS

发布时间:2020-12-17 01:57:20 所属栏目:百科 来源:网络整理
导读:版本: Rails 5.0.2 rspec 3.5.0 rspec-rails 3.5.1 capybara 2.12.1(用于JS测试的chromedriver / selenium) ruby2.3.3 gitlab-ci 过去(和期望的)行为 当我在功能测试中遇到错误时,堆栈跟踪和错误将存储在我的机器和CI的控制台上的结果中. 即app / models /
版本:

> Rails 5.0.2
> rspec 3.5.0
> rspec-rails 3.5.1
> capybara 2.12.1(用于JS测试的chromedriver / selenium)
>ruby2.3.3
> gitlab-ci

过去(和期望的)行为

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

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

当前行为

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

现在,如果我在使用Rails服务器开发一个页面并且在lazy-loader的POST请求上失败了,我可以直接跳到我的终端并查看堆栈跟踪以及发生了什么.

如何更新我的Rspec / Capybara测试更冗长,当在延迟加载器请求上发生这些服务器端错误时,实际上将它用于测试失败以前是怎样的?

衷心感谢您提供的任何帮助,并乐意跟进您可能需要的任何其他信息.

解决方法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读