我使用RSpec 2.99并拥有以下简单的spec文件:
describe 'thing' do
context 'context' do
it 'one thing' do
# ...
end
it 'another thing' do
# ...
end
end
it 'without context' do
# ...
end
end
输出结果为:
$ bundle exec rspec test_spec.rb -fd
thing
without context
context
one thing
another thing
Finished in 0.00092 seconds
3 examples, 0 failures
在 without context
之前,我无法弄明白为什么context
。
它与--order
的文档中所写的内容相矛盾:
[...]按照定义的顺序执行组和示例[...]
我在这里缺少什么?
更新:在同一文档页面上有一个概念:
嵌套组总是从顶层运行到底层[...]
这是否适用于特定情况?如果是这样,事实证明我无法让RSpec在规范文件中运行精确示例(请不要理会为什么我需要它)。
答案 0 :(得分:4)
文档不准确。示例组运行时,首先是runs its examples,然后是recursively delegates to each of its child example groups。这意味着组的示例将始终在其嵌套示例组之前运行,即使首先定义了一些嵌套组。
但是,对于--order defined
,每个类别中的项目将按照定义的顺序运行。
在编写文档时(甚至在命名--order defined
选项时),我们并没有记住这一点。
关于我们应该做些什么...我将在the issue you opened上对此进行一些思考。