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