如何从命令提示符窗口红宝石运行硒红宝石webdriver的脚本输出文件时,输出结果(how to e

2019-07-05 07:30发布

目前,我在使用耙宝石运行在同一时间我的测试套件(由硒webdriver的红宝石书面)所有硒脚本“启动命令提示符使用Ruby”终端。

要做到这一点我必须创建一个名为“rakefile.rb”下面内容的文件,只需要调用“回扣”在我的终端:(我认识基础上的人在我以前的帖子指导这方面的知识)。

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

然而,如果在执行时,一个脚本了故障运行将被终止。

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

另外,请你给我建议的方式运行脚本,以一个输出文件时写的所有的结果?或者每个脚本的结果放在每个输出文件和输出文件将显示脚本列表失败。 任何帮助表示赞赏。 非常感谢。

Answer 1:

我跑我的内部单元框架中的所有测试。 我使用的测试单元自己,但你也可以使用RSpec的。 这也使您能够断言添加到您的代码,然后把它由单元框架报告的能力。 如果一个测试失败或错误,你可以移动到下一个测试。

我的Rake文件的简化版本看起来是这样的

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


Answer 2:

你可以使用一个beginrescue捕捉任何故障在您的测试脚本。

就像是

begin
 raise "Ruby test script failed"
rescue
 puts "Error handled"
end

而你的情况会是这样

task :default do
    FileList['file*.rb'].each { |file| 
    begin
      ruby file
    rescue
      puts "Test script failed because of #{$!}"
    end 
    }
end

和写入该会是这样的一个文件

task :default do
    $stdout = File.new('console.out', 'w')
    $stdout.sync = true
    FileList['*.rb'].each { |file| 
    begin
      ruby file
    rescue
      puts "test script failed because of #{$!}"
    end 
    }
end

什么,做是重写$标准输出重定向控制台输出。



文章来源: how to export results when running selenium ruby webdriver scripts to output files from command prompt ruby window