如果先前的硒测试失败,则仅运行硒测试

时间:2011-01-10 20:15:49

标签: ruby error-handling selenium

我的selenium测试文件中使用了几个'it'块(使用Ruby和rspec)来测试我的Web应用程序的各个部分。如果任何条件或代码失败,每个'it'块都会停止执行并进入下一个'it'块。

  • 有没有办法运行'it'块 只有前一次失败或致电a 功能对失败的测试做出反应?
  • 有没有更好的方法来完成我想要做的事情而不涉及'it'阻止?

示例'it'阻止

it "should load example.com" do
  page.open("http://example.com")
  page.wait_for_page_to_load(25)
end

1 个答案:

答案 0 :(得分:1)

我不喜欢我目前的解决方案,并认为有更好的方法来实现这一目标,但现在......

  • 将原始测试代码包装在begin rescue block中的'it'块中
  • 放置代码以响应救援部门的失败

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会报告通行证