使用ruby test/unit将故障详细信息捕获到文件中

使用ruby test/unit将故障详细信息捕获到文件中,ruby,unit-testing,testunit,Ruby,Unit Testing,Testunit,我正在使用test/unitgem编写一个快速测试,并希望将错误/失败详细信息写入一个文件。在teardown部分,我使用@test_passed变量来知道何时出现故障,然后我写入一个文件,但我似乎找不到合适的变量来转储失败的方法或任何故障细节 我真的只想捕捉错误。看起来应该相当简单。有人知道test/unit使用什么变量来存储错误详细信息吗 下面是我如何尝试排除错误的示例: require "test/unit" class MyTest < Test::Unit::TestCase

我正在使用test/unitgem编写一个快速测试,并希望将错误/失败详细信息写入一个文件。在teardown部分,我使用@test_passed变量来知道何时出现故障,然后我写入一个文件,但我似乎找不到合适的变量来转储失败的方法或任何故障细节

我真的只想捕捉错误。看起来应该相当简单。有人知道test/unit使用什么变量来存储错误详细信息吗

下面是我如何尝试排除错误的示例:

require "test/unit"

class MyTest < Test::Unit::TestCase

  def setup
  end

  def teardown
    if @test_passed then
      puts "no errors"
    else
      File.open("errors.txt", "a+") do |f|
        f.puts "Error in #{what_is_the_variable_for_the_method_name}"
        f.puts "#{variable_with_error_details_like_expecting_this_but_got_that}"
      end
    end
  end

  def test_fail
    a = 9
    assert_equal(a, 10)
  end

end
Test::Unit framework的源文件安装在您的系统上。查找testcase.rb


结果存储在@_结果成员中

是的,我在文件里看到了。我曾尝试输出@u结果和@internal_数据,但它们似乎总是空的。要么我在它们被填充之前抓住它们,要么我只是做错了。我打赌我做错了。