如何排除与特定标签匹配的Rspec测试?

Nat*_*ong 11 ruby rspec

从命令行运行Rspec测试时,如何排除与特定标记匹配的测试?

Nat*_*ong 16

使用~@标记的名称,如下所示:

rspec spec --tag ~@slow
Run Code Online (Sandbox Code Playgroud)

请参阅文档:https://www.relishapp.com/rspec/rspec-core/docs/command-line/tag-option

更新

我现在正在Spork上运行我的测试,似乎它忽略了这个指令.不知道为什么.

  • 这只是谷歌搜索很难.阅读文档要容易得多:https://www.relishapp.com/rspec/rspec-core/docs/command-line/tag-option :-P (5认同)
  • 为了完整起见,`@`是可选的.根据文档,它是与`cucumber`语法的兼容性,将被忽略. (2认同)

CaT*_*aTs 7

我有类似的要求,但我希望默认情况下排除标记的测试,然后仅在我指定它时运行,这样我就不必记住每次都包含标记。

为了实现这一点,我将以下行添加到我的规范助手中:

config.filter_run_excluding :slow => true
Run Code Online (Sandbox Code Playgroud)

现在,当我运行时rspec .,它将运行除标记为 的测试之外的所有内容slow。或者,如果我想运行缓慢的测试,我可以使用rspec . --tag slow.