Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.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 Feature JS测试中的服务器端错误? 版本: Rails 5.0.2 rspec 3.5.0 rspec轨道3.5.1 水豚2.12.1(用于JS试验的含铬/硒) ruby 2.3.3 gitlab ci 过去(和期望的)行为_Ruby On Rails_Ruby_Rspec_Capybara_Selenium Chromedriver - Fatal编程技术网

Ruby on rails 如何使用惰性加载程序捕获Capybara Feature JS测试中的服务器端错误? 版本: Rails 5.0.2 rspec 3.5.0 rspec轨道3.5.1 水豚2.12.1(用于JS试验的含铬/硒) ruby 2.3.3 gitlab ci 过去(和期望的)行为

Ruby on rails 如何使用惰性加载程序捕获Capybara Feature JS测试中的服务器端错误? 版本: Rails 5.0.2 rspec 3.5.0 rspec轨道3.5.1 水豚2.12.1(用于JS试验的含铬/硒) ruby 2.3.3 gitlab ci 过去(和期望的)行为,ruby-on-rails,ruby,rspec,capybara,selenium-chromedriver,Ruby On Rails,Ruby,Rspec,Capybara,Selenium Chromedriver,当我在功能测试中遇到错误时,stacktrace和错误将存储在我的机器和CI控制台上的结果中 i、 e.在app/models/dancer.rb的第36行为nilClass定义的未定义方法“#dance” 当前行为 我们最近更新了代码库,对特定数据表和特定视图使用“延迟加载”(或服务器端加载)。这意味着,在JS/feature测试中,如果视图中的某些内容没有正确加载,我们只会有一个从未停止旋转的微调器和一个超时错误(或未找到的内容),而不是呈现错误 现在,如果我正在使用Rails服务器开发一个

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

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

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

现在,如果我正在使用Rails服务器开发一个页面,并且延迟加载程序的POST请求失败,那么我可以直接跳到我的终端,查看堆栈跟踪以及发生了什么

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


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

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

感谢您的想法和反馈。我现在正在部署这些建议,并将让您知道我得到了什么…以下是我面临的问题:```Selenium::WebDriver::Error::UnhandleAlerError:意外警报打开:{警报文本:DataTables警告:table id=DataTables\u table\u 0-Ajax错误。有关此错误的更多信息,请参阅}``因此,我还将尝试您的更改,同时阻止数据表跳出顶部并呈现此错误。