如何在RSPEC中以定义的顺序执行所有上下文

时间:2017-03-15 09:18:10

标签: rspec rspec-rails

我的_spec结构如下所述

  

描述做

     

上下文

     

     

上下文

     

     

我如何确保所有上下文的执行顺序将如我所定义的那样?目前所有这些都以随机方式执行。感谢

1 个答案:

答案 0 :(得分:1)

rspec将按照定义的顺序在规范文件中执行测试,如果您按如下方式调用它:

rspec --order defined

您还可以使用元数据describe标记示例组(使用order: :defined指定的组)来执行相同的操作。

但是,这仅适用于文件中的测试。 rspec将按字母顺序执行文件。这是程序中的当前限制,基于this issue report作者声明:“RSpec不按字母顺序执行测试。它按字母顺序加载spec文件,然后按定义的顺序或随机运行测试订单取决于您的配置。“

您使用rspec一个bash命令执行每个文件,但这可能是也可能不值得:

echo "file4 file3 file1 file2" |
  xargs -n1 -t bundle exec rspec --format doc --order defined