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 のようなものを直接入力した場合にのみ機能します)私のRuby端末)。誰でも私に道を案内してください。本当にありがとう。

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 に答える