首先运行标有自定义元数据的RSpec规范

时间:2015-01-20 11:38:59

标签: ruby-on-rails ruby rspec

我想在RSpec会话开始时运行一些标有:first的规范。所以,如果我有:

describe 'one' { ... }
describe 'two', :first { ... }
describe 'three' { ... }

我想要运行规范的顺序是twoonethree

这可以用RSpec完成吗?

注意:我知道以某种顺序运行测试会适得其反,但我需要为我们的项目快速解决方法,以便所有规范都通过(遗憾的是,某些规范编写得很糟糕,并且根据它们的运行顺序而失败)

2 个答案:

答案 0 :(得分:1)

RSpec您可以传递--order flag来定义特定订单。默认情况下,此标志仅了解一些策略,例如randomseed,其中种子是随机顺序的特定实例。

但是,如果你深入研究Ordering module,你会看到你可以定义新的订购策略。

Custom strategy明显按特定区块排序。这些策略由排序寄存器管理,并取决于:order config

您可以调查内部结构,根据规则定义自定义订单策略,并将其设为默认值。

答案 1 :(得分:0)

要按特定顺序运行测试,您需要按照您希望它们运行的​​顺序排列测试,然后使用rspec标志运行--order default命令:

rspec --order default

如果您在没有此标志的情况下运行rspec,测试将以随机顺序运行(我相信您已经注意到了)。

<强>来源:

2012年Rspec添加此标志时发布的说明 - http://blog.davidchelimsky.net/blog/2012/01/04/rspec-28-is-released/