在一个特定的顺序运行RSpec的任务(Run RSpec tasks in a specific o

2019-06-23 22:59发布

我有一大堆的RSpec的 耙任务定义,我想在一个特定的顺序运行,当我跑的测试,整个套件。

我已经试过这样的事情:

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

它运行的第一次测试,然后停止和不运行的任务的其余部分。

所以,如果用耙语法,这是行不通的。 有没有一种方法来记下RSpec的Rake任务任务相关性?

Answer 1:

勾选此http://blog.davidchelimsky.net/2012/01/04/rspec-28-is-released/

阶兰特我们增加了一个选项--order有两个支持的值:兰特和默认。

rspec的--order随机(或RAND)告诉RSpec的以随机顺序运行的组中,然后运行每个组内的实施例以随机顺序。 我们实现了这种方式(而不是每个实例的完全随机化)之前,因为我们不想重新运行昂贵(:所有)挂钩。 一个公平的折衷,因为所产生的随机化只是在揭露订单的依赖错误一样有效。

当您使用--order随机,RSpec的打印出它使用的种子随机数发生器的随机数。 当你认为你已经找到了一个订单的依赖问题,可以传递下去的种子和顺序将保持一致:

--order兰德:3455 --order默认告诉RSpec的加载组和实例,因为他们中的每个文件中声明

基本上你应该为了在规范文件中为您的测试然后执行它--order default选项。 。



文章来源: Run RSpec tasks in a specific order
标签: ruby rspec rake