unittestを実行するrubyスクリプト

By | 2012/06/01

Windowsでgtestを使ってすべてのライブラリをunittestしようとしたらexeを実行する必要があることに気づきスクリプトを書きました。

単純に実行してそのログと結果を取得してくるだけのものです。
パス付で実行しようとすると実行がうまくいかないことがあるのでいったん実行ファイルのあるところに移動してから実行しています。



class ExeExecutor
public
def initialize()
@result = false
@log = ""
end
def exec(exe)
origin_path = Dir.pwd
Dir.chdir(File.dirname(exe))
exename = File.basename(exe)
logname = "log_#{exename}.txt"

@result = system("#{exename} > #{logname}")
File.open(logname, "r"){ |f| @log << f.read }
File.delete(logname)
Dir.chdir(origin_path)
end
def has_failed
return @result==false
end
def log()
return @log
end

private

@result
@log

end

executor = ExeExecutor.new
executor.exec("C:/test/Release/test.exe")
if executor.has_failed
puts executor.log
end


コメントを残す

メールアドレスが公開されることはありません。