我的 selenium 测试文件 (使用 Ruby 和 rspec) 中有几个“it” block ,用于测试我的 Web 应用程序的各个部分。如果任何条件或代码失败,每个“it” block 都会停止执行并转到下一个“it” block 。
- 有没有办法运行“它” block 仅当前一个失败或调用 函数对失败的测试使用react?
- 有没有更好的方法来完成我想做的事情而不涉及“它” block ?
示例“它” block
it "should load example.com" do
page.open("http://example.com")
page.wait_for_page_to_load(25)
end
最佳答案
我不喜欢我目前的解决方案,并且认为有更好的方法来实现这一点,但现在......
- 将“it” block 中的原始测试代码包装在 begin rescue block 中
- 将响应失败的代码放在救援部分
.
it "should load example.com" do
begin
page.open("http://example.com")
page.wait_for_page_to_load(25)
"wow".should == "cool"
rescue Exception => e
// code that responds to failed test
end
end
为什么我不喜欢这个
- 我觉得这样写测试代码很脏(感觉不对!)
- rspec 报告通过,除非救援代码也失败
关于ruby - 仅在先前的 Selenium 测试失败时才运行 Selenium 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4651052/