我定义了一堆RSpec Rake任务,当我运行整个测试套件时,我想按特定顺序运行。
我试过这样的事情:
task :run_in_order => [:one, :two, :three] do
puts "Run suite of tests"
end
它运行第一个测试,然后停止并且不运行其余任务。
因此,如果使用 Rake 语法它不起作用。有没有办法记录 RSpec Rake 任务的任务依赖关系?
检查这个http://blog.davidchelimsky.net/2012/01/04/rspec-28-is-released/
--order rand 我们添加了一个带有两个支持值的 --order 选项:rand 和 default。
rspec --order random(或 rand)告诉 RSpec 以随机顺序运行组,然后以随机顺序运行每个组中的示例。我们以这种方式实现它(而不是对每个示例进行完全随机化),因为我们不想重新运行昂贵的 before(:all) 钩子。一个公平的权衡,因为由此产生的随机化在暴露顺序依赖错误方面同样有效。
当您使用 --order random 时,RSpec 会打印出它用于为随机发生器播种的随机数。当你认为你发现了一个顺序依赖的错误时,你可以传递种子并且顺序将保持一致:
--order rand:3455 --order default 告诉 RSpec 加载组和示例,因为它们在每个文件中声明
基本上,您应该在规范文件中订购测试,然后使用--order default
选项执行它。.