一尘不染

运行selenium ruby​​ webdriver脚本以从命令提示符ruby窗口输出文件时如何导出结果

selenium

当前,通过使用“使用Ruby启动命令提示符”终端中的rake gem,我一次运行测试套件(由Selenium Ruby
Webdriver编写)中的所有Selenium脚本。

为此,我必须创建一个名称为“ rakefile.rb”的文件,其内容如下,并在终端中仅调用“ rake”
:(根据我以前的帖子中某人的指导,我已经了解了这一知识)。

task :default do
    FileList['file*.rb'].each { |file| ruby file }
end

但是,如果执行时有一个脚本失败,运行将终止。

有人可以帮助指导我如何修改“ rakefile.rb”,以便如果有一个脚本失败,则系统将忽略它并继续运行我的测试套件中的下一个脚本?

另外,您能否建议我一种在将脚本运行到一个输出文件时将所有结果写入的方法?或者将每个脚本的结果放入每个输出文件中,并且输出文件将显示失败的脚本列表。任何帮助表示赞赏。非常感谢。


阅读 288

收藏
2020-06-26

共1个答案

一尘不染

我在单元框架内运行所有测试。我自己使用测试单元,但您也可以使用rspec。这也使您能够向代码中添加断言,然后由单元框架将其报告。如果一个测试失败或错误,则可以继续进行下一个测试。

我的rakefile的简化版本如下所示

require 'rake/testtask'

#this will run all tests in directory with no dependencies 
Rake::TestTask.new do |t|
  t.libs << "test"
  t.test_files = FileList['FAL*.rb']
  t.verbose = true
end

#or you could run individual files like this

task :FAL001 do 
  ruby "FAL001.rb"
end

每个测试用例看起来像这样

require "test-unit"
gem "test-unit"
require "selenium-webdriver"

class FAL001 < Test::Unit::TestCase
  def testFAL001 #methods that begin with test are automatically run 
    #selenium code goes here 
    assert_true(1 == 1)
  end
  def test002 
    #another test goes here 
  end
end
2020-06-26