按特定顺序运行RSpec任务

Hil*_*ary 23 ruby rake rspec

我定义了一堆RSpec Rake任务,当我运行整套测试时,我想以特定的顺序运行.

我尝试过这样的事情:

task :run_in_order => [:one, :two, :three] do 
  puts "Run suite of tests"
end
Run Code Online (Sandbox Code Playgroud)

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

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

lua*_*sus 45

检查这个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选项执行它..