Ruby单元测试 - 访问测试结果(成功/失败)?

时间:2015-08-25 18:03:49

标签: ruby unit-testing minitest ruby-2.2

我使用的是Ruby 2.2。我需要运行单元测试并获取成功或失败的信息。我浏览了测试单元和minitest的文档(在Ruby 2.2中建议用于单元测试的gems),但我似乎无法找到一种方法可以返回或存储有关测试结果的信息。

我需要的只是测试失败/成功的信息,我需要从Ruby级别访问它。我想我必须使用特定的方法来运行测试 - 到目前为止,我只能通过运行测试文件来运行单个测试,而不是通过调用任何方法。

也许这只是我对Ruby的不了解,无论如何我会感激任何帮助。

2 个答案:

答案 0 :(得分:1)

可以使用Ruby运行shell命令并返回结果来运行测试。

以下是test-unit的示例:

test_output = `ruby test.rb --runner console --verbose=progress`

failed_tests = test_output.chomp.split('').count('F')
passed_tests = test_output.chomp.split('').count('.')

puts "P: #{passed_tests}, F: #{failed_tests}"

我们正在使用--verbose=progress选项,以便我们获得最低输出。它看起来如下所示:

.F...F

我们计算F的数量以确定有多少测试失败。 对于关于测试输出,示例程序将打印:

P: 4, F: 2

答案 1 :(得分:0)

另一种选择是使用passed?方法: https://ruby-doc.org/stdlib-2.1.1/libdoc/minitest/unit/rdoc/MiniTest/Unit/TestCase.html#method-i-passed-3F 不确定最新版本的Ruby是否仍然可用,因此请在使用前进行检查。