1

我想在另一个 ruby​​ 脚本(某种引导程序脚本)中运行我的 minitest 处理程序测试。我想将我的测试结果返回给一个变量,然后我可以解析它以确保在继续之前一切都通过了。这可能吗?如果是这样,这样的语法是什么样的?

4

2 回答 2

0

您可以运行测试并捕获输出。

puts "Running foo test:"
output = `ruby -Ilib:test test/test_foo.rb`
puts output
puts "Completed foo test."
于 2013-06-28T18:53:14.757 回答
0

好的,所以我想出了如何使用 rake::test 库来做到这一点。此代码将执行一个 minitest 测试,然后从报告中读取 xml 并确定一切是否通过。

    require 'rake'
    require 'rake/testtask'
    require 'ci/reporter/rake/minitest'
    require 'xmlsimple'

    Rake::TestTask.new do |t|
      t.verbose = true
      t.test_files = FileList['system_tests/vm_tests.rb']
    end
    task :test => :"ci:setup:minitest"
    Rake::Task[:test].execute
    results = XmlSimple.xml_in('test/reports/TEST-VMtests.xml')
    if results["failures"] > 0 or results["errors"] > 0
      raise "The VM Tests have resulted in failures or errors"
    end
于 2013-07-29T19:32:44.883 回答