我们可以列出属于 Cucumber 标签的所有场景吗

Can we list all the scenarios which fall under a Cucumber tag

我有三四个 Cucumber 标签(比如@smoke、@testing、@test),这些标签随机放在场景和功能文件中。现在,我需要列出所有只属于烟雾的场景。有人可以建议一种方法吗

您可以将 CucumberOptions 中的 dryRun=true 选项与运行器中的标签过滤器一起使用,以获取报告中的场景列表。此选项不会执行您的功能,但会列出它们并检查步骤是否具有适当的粘合代码。

@CucumberOptions(plugin={"pretty", "html:report"}, tags={"@smoke"},  
    snippets=SnippetType.CAMELCASE,
    glue="....", features="src/test/resources/features", dryRun=true)

确保添加正确的粘合代码路径。此外,功能应指向包含功能文件的顶级目录。

以上应列出任何在html报告中包含@smoke标签的场景。

但是,如果您正在寻找 只有 @smoke 标签而不是其他标签的场景列表,请使用此过滤器(tags="@smoke","~@testing"," ~@test").

请注意,如果您有场景大纲,它们将根据示例中的场景数量重复 table。

您可以编写自己的过滤器来打印您想要的内容 运行 但 运行 什么都不打印。

require 'cucumber/core/filter'

# put inside features/support/
class PrintOnlyCukeFilter < Cucumber::Core::Filter.new
  def test_case(test_case)
    puts test_case.location.to_s
  end
end

AfterConfiguration do |config|
  config.filters << PrintOnlyCukeFilter.new
end

将文件放入features/support

要只打印文件名你可以看到这个gist