我使用的是Ruby 2.2。我需要运行单元测试并获取成功或失败的信息。我浏览了测试单元和minitest的文档(在Ruby 2.2中建议用于单元测试的gems),但我似乎无法找到一种方法可以返回或存储有关测试结果的信息。
我需要的只是测试失败/成功的信息,我需要从Ruby级别访问它。我想我必须使用特定的方法来运行测试 - 到目前为止,我只能通过运行测试文件来运行单个测试,而不是通过调用任何方法。
也许这只是我对Ruby的不了解,无论如何我会感激任何帮助。
答案 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是否仍然可用,因此请在使用前进行检查。