按特定顺序运行RSpec任务

我定义了一堆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以随机顺序运行组,然后以随机顺序运行每个组中的示例。 我们以这种方式实现它(而不是完全随机化每个示例)因为我们不想重新运行昂贵的(:all)钩子。 公平的权衡,因为随之而来的随机化在暴露顺序依赖性错误方面同样有效。

当你使用–order random时,RSpec打印出它用来为随机数发生器种子的随机数。 当您认为您发现了订单依赖性错误时,您可以传递种子并且订单将保持一致:

–order rand:3455 –order默认告诉RSpec加载组和示例,因为它们在每个文件中声明

基本上,您应该在spec文件中订购测试,然后使用--order default选项执行它。 。