当您自己的测试套件执行时,会有一些结果。 我想在txt文件或html中保存信息, 但我不知道如何保存那些输出的消息, 如果有人知道,请与我分享,提前谢谢 下面的代码是我的实验,但它不起作用。
require File.join(File.dirname(__FILE__), 'person')
require "test/unit"
filename = "logfile.txt"
$logfile = File.new(filename,"a")
open(logfile,'a') { |f| f << $stdout}
class PersonTest < Test::Unit::TestCase
FIRST_NAME, LAST_NAME, AGE = 'Nathaniel', 'Taldtretbott', 25
def setup
@person = Person.new(FIRST_NAME, LAST_NAME, AGE)
end
def test_first_name
assert_equal "asv", @person.first_name,"try to compare"
end
def test_last_name
assert_equal "Taldtretbott", @person.last_name
end
def test_full_name
assert_equal FIRST_NAME + ' ' + LAST_NAME, @person.full_name
end
end
答案 0 :(得分:1)
为什么不
ruby testfile.rb > text_output.txt
答案 1 :(得分:1)
我有时间尝试对解决方案进行一些测试。我设法以这种方式工作:
require 'test/unit'
STDOUT = $stdout = File.open("stdout.txt", "a+")
STDERR = $stderr = File.open("stderr.txt", "a+")
class AreasTest < Test::Unit::TestCase
def test_ok
puts "#{Time.now} Hello "
a = 10
assert_equal(a, 10)
end
def test_fail
a = 9
assert_equal(a, 10)
end
end
它给出了警告,因为STDOUT和STDERR已经初始化,但只是重定向$ stdout而$ stderr不起作用(仅适用于普通的放置)。
我希望它有所帮助。
答案 2 :(得分:0)
尝试:
$stdout = $logfile
而不是:
open(logfile,'a') { |f| f << $stdout}
这意味着您将stdout重定向到文件。