在另一个ruby脚本中运行minitest处理程序测试

时间:2013-06-28 17:51:02

标签: ruby minitest

我想在另一个ruby脚本(各种类型的bootstrapper脚本)中运行我的minitest处理程序测试。我想将测试结果返回给变量,然后我可以解析该变量以确保在继续之前通过所有测试。这可能吗?如果是这样,这样的东西的语法是什么样的?

2 个答案:

答案 0 :(得分:0)

你可以弹出来运行测试并捕获输出。

puts "Running foo test:"
output = `ruby -Ilib:test test/test_foo.rb`
puts output
puts "Completed foo test."

答案 1 :(得分:0)

好的,所以我想出了如何使用rake :: test库来做到这一点。此代码将执行最小的测试,然后从报告中啜饮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