2

我正在使用 Ruby 2.2。如果成功或失败,我需要运行单元测试并获取信息。我正在浏览 test-unit 和 minitest 的文档(Ruby 2.2 中单元测试的建议 gem),但我似乎找不到可以返回或存储有关测试结果的信息的方法。

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

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

4

2 回答 2

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
于 2015-08-25T18:49:43.747 回答
0

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

于 2019-01-19T21:01:08.297 回答