将带有示例组的RSpec共享示例附加到其他随机排序的示例中

时间:2016-08-04 11:00:27

标签: ruby-on-rails rspec

我有一些上下文和/或块的共享示例,我需要在该文件中的所有其他示例组执行后执行。 (这个顺序依赖的原因是我测试了很多不同的过滤器选项,这个特定的测试迭代了所有未经过特定测试的预定义过滤器设置,并且应该测试它们的基本功能/在常见结果中。)

我确实希望保留所有其他示例(RSpec.configure { |config| config.order = :random })的随机顺序。

after(:context)对我不起作用,因为我不能include_examples从那里开始。

RSpec::Core::ExampleGroup::WrongScopeError: `include_examples` is not available from within an example (e.g. an `it` block) or from constructs that run in the scope of an example (e.g. `before`, `let`, etc). It is only available on an example group (e.g. a `describe` or `context` block).

我一直在研究压倒一切的订单,一个可行的选择似乎是:

RSpec.configure do |config|
  config.register_ordering(:append_to_random) do |items|
    items.randomize
    items << tests_to_append
  end
end

.randomize应该是这里一些随机化逻辑的同义词)

然后以某种方式识别tests_to_append(可能使用标签?)。 但这似乎是一种非常 hacky 的方式,实现某些东西,理论上非常简单。 所以我的实际问题是,如果有更好/好/性感的方法来实现这个目标吗?

0 个答案:

没有答案