cucumber - 如何在不运行测试的情况下获取所有标签和 cucumber 场景

标签 cucumber cucumber-jvm cucumber-java

我想以某种方式获取我在我的项目中使用的所有标签的列表,并获取我在我的项目中拥有的所有 cucumber 场景的名称,而无需运行测试。有人可以帮助我吗?

最佳答案

根据@mpkorstanje 的建议,您可以为此创建一个自定义插件。

public class DryRunPlugin implements EventListener {

    @Override
    public void setEventPublisher(EventPublisher publisher) {
        publisher.registerHandlerFor(TestCaseStarted.class, this::handleCaseStarted);
    }

    private void handleCaseStarted(TestCaseStarted event) {
        System.out.println(event.getTestCase().getUri());
        System.out.println(event.getTestCase().getName());
        System.out.println(event.getTestCase().getScenarioDesignation());
        event.getTestCase().getTags().stream().forEach(t -> 
        System.out.println(t.getName()));
    }

}

@CucumberOptions(glue = "stepdef", plugin = {
        "formatter.DryRunPlugin" }, features = "src/test/resources/feature/", dryRun = true)

您将获得如下输出。

file:src/test/resources/feature/scenarios1.feature
Scenario 1
src/test/resources/feature/scenarios1.feature:5 # Scenario 1
@Feature
@ScenarioOne

示例特征文件。

@Feature
Feature: Scenario and Scenario Outline Combination

  @ScenarioOne
  Scenario: Scenario 1
    And this is "FIRST" step
    And this is "SECOND" step

关于cucumber - 如何在不运行测试的情况下获取所有标签和 cucumber 场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55535160/

相关文章:

java - 正则表达式 cucumber 小 cucumber 用于数字 float

java - cucumber 数据表错误 - io.cucumber.datatable.UndefinedDataTableTypeException : Can't convert DataTable to cucumber. api.DataTable

maven - 如何并行运行我的 cucumber-jvm 功能? (使用maven使用cucumber-jvm-parallel-plugin)

testing - 如何为独立于数据库的Webservice api构建自动化测试

intellij-idea - cucumber 场景大纲中的嵌套示例 - 列表或映射值

java - 如何为 Android 和 iOS 运行一个功能文件

Java和Cucumber如何复用多线程场景

cucumber-jvm - 如何多次执行 Cucumber 场景/功能?

java - Cucumber-JVM:根据场景的可视文本执行另一个 Scenario/ScenarioOutline 中的步骤

selenium - 如何从 Java 代码而不是 JUnit Runner 运行 cucumber 功能文件