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

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

在这里,你可以在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

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

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

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