你怎么得到黄瓜/警卫来过滤像@wip这样的标签?

Pet*_*xey 6 guard cucumber spork

我正在运行spork和后卫,我的RSpec测试都运行正常.为了加快测试速度,我可以使用放在.rspec文件中的标签成功过滤我的RSpec测试.

.rspec

--colour
--debug
--tag focus
--tag now
Run Code Online (Sandbox Code Playgroud)

不幸的是,虽然我无法过滤黄瓜标签.黄瓜每次运行时都会运行所有内容或只运行更改的文件.

我怎样才能让黄瓜/ spork/guard尊重像@ wip,@ no等标签并只运行那些测试?有没有相当于.rspec黄瓜标签的文件?

Dan*_*and 3

您可以使用黄瓜配置文件来定义要执行的标签。使用 YML 文件,您可以定义执行 @wip 标签的配置文件:

wip: --tags @wip
Run Code Online (Sandbox Code Playgroud)

更多信息请访问:

https://github.com/cucumber/cucumber/wiki/cucumber.yml

您还可以从命令行运行 cucumber 并传递 -t 参数:

cucumber -t @wip,@now
Run Code Online (Sandbox Code Playgroud)

来自帮助(黄瓜-h):

仅执行标签与 TAG_EXPRESSION 匹配的功能或场景。场景继承在功能级别声明的标签。最简单的 TAG_EXPRESSION 只是一个标签。示例:--tags @dev。当标签表达式中的标签以 ~ 开头时,这表示布尔 NOT。示例:--tags ~@dev。标签表达式可以有多个标签,用逗号分隔,表示逻辑或。示例:--tags @dev,@wip。--tags 选项可以指定多次,这表示逻辑 AND。示例:--tags @foo,~@bar --tags @zap。这代表布尔表达式 (@foo || !@bar) && @zap

因此,理论上我们可以使用带有以下选项的保护文件:

guard 'cucumber', :cli => "--drb --tags @now" do
  watch(%r{^features/.+\.feature$})
  ...
end
Run Code Online (Sandbox Code Playgroud)