【发布时间】:2023-03-19 04:53:01
【问题描述】:
如何让我的 Rails 应用程序的测试以随机顺序执行? 有没有使用 rake 的简单解决方案?
【问题讨论】:
-
你为什么要这样做?
-
保证测试之间没有依赖关系?
-
是的,我们的重点是确保测试之间没有依赖关系。
如何让我的 Rails 应用程序的测试以随机顺序执行? 有没有使用 rake 的简单解决方案?
【问题讨论】:
你不妨看看“ZenTest 3.9.0:现在有更多的邪恶”(不能做直接链接,使用谷歌的缓存)
Added ability to set test execution order, defaults to :random. EVIL!
【讨论】:
给你,在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
请记住,在文件中的测试仍将按照它们出现的顺序执行。我想你可以猴子补丁测试单元允许这样做。
【讨论】: