按特定顺序运行RSpec任务

时间:2012-04-25 17:59:39

标签: ruby rspec rake

我定义了一堆RSpec Rake个任务,当我运行整个测试套件时,我想按特定顺序运行。

我尝试过这样的事情:

task :run_in_order => [:one, :two, :three] do 
  puts "Run suite of tests"
end

它运行第一个测试然后停止并且不执行其余任务。

因此,如果使用Rake语法,则不起作用。有没有办法记录RSpec Rake任务的任务依赖性?

1 个答案:

答案 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选项执行它。