运行/排除标记存在的规范

时间:2015-07-14 14:19:54

标签: ruby rspec

我知道我可以运行some_tag value --tag some_tag:valuetrue或添加了标记但是没有值(默认为--tag some_tag)的规格~。我也知道我可以使用上面的语法和slow: :external_service排除规范。

如何在标签存在/缺失的情况下运行所有​​规格?

例如: 如果我有标有slow: :manual_confirmationslow: :some_other_reasonrspec --tag ~slow 的规格(这些只是组成名称),我想做类似的事情:

slow == true

并运行所有不慢的规格。

以上操作不起作用,因为它会过滤掉!slow.nil?而不是:slow, pending_on: :external_service

的规格
  • 有没有办法在有或没有额外配置的情况下实现这一目标?
  • 做这种事的惯用方法是什么?我猜想添加两个标签,一个布尔值和一个包含值(例如{data: datas2}

2 个答案:

答案 0 :(得分:0)

This应该有所帮助。基本上打电话

rspec --tag ~slow:external_service

并且不会运行使用slow: :external_service

标记的测试

答案 1 :(得分:0)

使用多个标签排除可能会有所帮助。

rspec --tag ~slow:external_service --tag ~slow:manual_confirmation

有关其他选项,请参阅this文章。