ruby - 仅在先前的 Selenium 测试失败时才运行 Selenium 测试

标签 ruby error-handling selenium

我的 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/

相关文章:

python - Python 有 argc 参数吗?

ajax - 如何将Django错误状态传递给Ajax

grails - 在 Jenkins 上运行 Geb 测试

Ruby:WAITING任何子进程完成

ruby - `sort_by' : comparison of Array with Array failed (no nil data)

ruby-on-rails - Rails 自动加载完全大写的名称,如 API

selenium - 通用 Selenium 测试图像

ruby - 无法进行原生交互 : Could not load native events component for Selenium-webdriver 2. 35.0和Firefox 23.0.1组合

linux - sed:-e 表达式 #1,字符 66:未终止的 `s' 命令

python - Selenium WebDriver 将数据逐行写入 CSV