如何在rspec输出中设置类的顺序?

时间:2013-11-04 15:24:53

标签: ruby testing rspec

如何在由<:p>生成的输出中设置类的顺序

rspec --format doc

我希望最重要的类(由我定义)首先出现在生成的文档中。

2 个答案:

答案 0 :(得分:1)

如果你provide the option --order defaultrspec在底层文件系统强加的排序中执行测试:通常在* NIX上区分大小写的字母和在Windows上不区分大小写的字母。因此,您可以通过在--order default文件中设置.rspec来控制执行顺序:

ash@dev ~/src/rspec-order $ cat .rspec
--color
--format doc
--order default

然后,使用数字前缀命名您的spec文件和目录,这些前缀将按您想要的顺序排序:

ash@dev ~/src/rspec-order $ ls -l spec/
total 12
-rw-rw-r-- 1 ash ash  96 Nov  4 16:04 001_first_spec.rb
-rw-rw-r-- 1 ash ash 106 Nov  4 16:05 002_second_spec.rb
-rw-rw-r-- 1 ash ash 734 Nov  4 16:03 spec_helper.rb

作为旁注,通过这样做你放弃的一件事就是能够发现你的规格中偶然引入的排序依赖关系。

答案 1 :(得分:1)

Ash提供了简单的方法,并提到了走这条路的主要警告。

如果您想在订购输出时保持随机测试,您需要编写一个支持有序输出的新RSpec格式化程序。考虑到所有因素,格式化程序非常简单;他们implement a protocol defined by BaseFormatter然后输出他们认为合适的东西。您可以向default DocumentationFormatter code寻求灵感。

假设您不需要此代码可以广泛重用,您甚至可以对格式化程序中的顺序进行硬编码,并在配置文件中跳过(相当简单,给定它的Ruby)任务。