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

How to execute all contexts in the defined order in RSPEC

我的 _spec 结构如下所述

describe do

context do

end

context do

end

end

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

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

rspec --order defined

您还可以使用元数据 order: :defined 标记示例组(您用 describe 指定的组)来做同样的事情。

但是,这仅适用于文件内的测试。 rspec 将按字母顺序执行文件。这是程序中的当前限制,基于作者声明的 this issue report"RSpec does not execute tests in alphabetical order. It loads spec files in alphabetical order and then runs tests in defined order or random order depending on your configuration."

您可以使用一点 bash 魔法在单个 rspec 命令中执行每个文件,但这可能值得也可能不值得:

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