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

标签 ruby unit-testing minitest ruby-2.2

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

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

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

最佳答案

也许您可以使用 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

关于Ruby 单元测试 - 访问测试结果(成功/失败)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32211031/

相关文章:

ruby-on-rails - 如何在 update_attributes 期间以管理员身份跳过验证?

ruby - end.method 在 Ruby 中有什么作用?

ruby-on-rails - 那是带有覆盖参数的 ruby​​ on rails 奇怪行为吗?或者我只是再次不了解 ruby ?

javascript - 嵌套 Rails 模型 - 在创建时忽略 child_index

ruby-on-rails - 生成迷你测试 :spec test for an existing controller for functional testing

ruby - 测试 padrino post 方法被 csrf 停止

python - 导入时模拟模块全局变量

c# - 如何在没有 ControllerContext 的情况下从 IIdentity 模拟 GetUserId 和 IsAuthenticated

php - 用于 mysql 和 php 的 sql linter

javascript - 使用 Capybara 和 Minitest 测试 JavaScript