我的 Cucumber 测试在某些测试结束后出现非确定性失败。似乎当浏览器/ cucumber 步骤完成时,服务器上仍在处理请求,并且即使在 DatabaseCleaner 运行和删除文档时它们似乎仍在运行,这导致在尝试访问服务器中的模型时失败.
当我的应用程序创建用户时,他们存储在实例变量 @users = []
中以便于访问。当我捕捉到这些异常时,我意识到变量仍然存在 @users.first.present? # => true
但其文档已被删除 @users.first.reload # => nil
。
我真的不明白问题出在哪里,因为不应该有额外的页面加载(可能是 Turbolinks/缓存在耍我),而且失败似乎真的不确定(失败 1/3 次,即使在不同的情况下)代码中的位置)
我宁愿避免设置 Capybara.raise_server_errors == false
尽管它很可能会修复那些测试的问题
我想知道你是否有类似的问题以及你是如何应对的......
最佳答案
不确定,您使用的数据库清理策略可能有问题
您的默认网络驱动程序和数据库清理策略是什么?
在场景或功能之前尝试@javascript 标签。它将使用 selenium 作为当前的网络驱动程序,默认使用数据库清理器“事务”策略。
关于ruby-on-rails - cucumber - 步骤结束后出现服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42714816/