Ruby - 使用rake以随机顺序执行测试

时间:2009-09-03 22:18:07

标签: ruby random testing rake

如何让我的Rails应用程序的测试以随机顺序执行? 是否有使用rake的简单解决方案?

2 个答案:

答案 0 :(得分:5)

在这里,您可以在lib/tasks/tasks.rb

中进行定义
namespace :test do 
  namespace :randomize do 
    desc "Randomize tests"
    Rake::TestTask.new(:all => "db:test:prepare") do |t|
      t.libs << "test"
      t.test_files = Rake::FileList[
        'test/unit/**/*_test.rb',
        'test/functional/**/*_test.rb', 
        'test/integration/**/*_test.rb' 
      ].shuffle
      t.verbose = true
    end
  end
end

运行:rake test:randomize:all

请记住,文件测试中仍会按照它们出现的顺序执行。我想你可以通过猴子补丁测试单元来实现这一点。

答案 1 :(得分:0)

您可以查看“ZenTest 3.9.0:现在有更多邪恶”(无法直接链接,使用谷歌缓存)

Added ability to set test execution order, defaults to :random. EVIL!