0

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

为此,我必须创建一个名称为“rakefile.rb”的文件,其内容如下,并在我的终端中调用“rake”:(我已经根据我之前的帖子中的一个人的指南了解了这些知识如何导出结果运行 selenium ruby​​ webdriver 脚本以从命令提示符 ruby​​ 窗口输出文件时)。

task :default do
    $stdout = File.new('console.out', 'w')

    $stdout.sync = true


    FileList['test*.rb'].each { |file|
    begin
      ruby file

     rescue

      puts "The following tests reported unexpected behavior:"
          puts "#{file} \n"
     end
     }
end

但是,我不知道如何修改“rakefile.rb”以便能够将执行每个失败的测试(显示在我的终端上)的内容导出到每个输出文件?这意味着我希望执行每个我的脚本的内容将被写入输出文件而不是显示在我的 Ruby 终端上(例如:当我运行测试脚本“test_GI-1.rb”时,执行这个的内容脚本将被写入输出文件“test_GI-1.rb.out”,而不是显示在我的终端中。

将“rakefile.rb”修改为 ruby​​ file >> test.rb.out 之类的东西,但它根本不起作用(这个东西只有在我直接键入 ruby​​ test.rb >> output.out 之类的东西时才起作用我的红宝石终端)。任何人请指导我的方式。非常感谢。

4

1 回答 1

1

我还没有尝试过,但我想这应该可以

task :default do
FileList['test*.rb'].each { |file|
 begin
   system("ruby #{file} > #{file}.log")
  rescue
   puts "The following tests reported unexpected behavior:"
   puts "#{file} \n"
  end
}
end

基于新要求——

更新


task :default do
    logfile.new("console.out", "w")
    FileList['test*.rb'].each { |file|
     begin
       system("ruby #{file} > #{file}.log")
      rescue
       logfile.puts("The following tests reported unexpected behavior:")
       logfile.puts("#{file} \n")
      end
      }
end
于 2012-12-16T06:12:12.273 回答