如何在没有运行测试的情况下获取所有标签和黄瓜方案

问题描述 投票:3回答:2

我想以某种方式得到我在项目中使用的所有标签的列表,并获得我在项目中没有运行测试的黄瓜场景的所有名称。有人可以帮助我,我该怎么做?

cucumber cucumber-jvm cucumber-java
2个回答
0
投票

据我所知,黄瓜不允许您在不执行测试的情况下获取所有标签和方案名称的列表。

可能你需要使用像VB脚本这样的脚本语言,在文件中搜索@的位置并获取标签名称并在文件下逐个保存。类似地,在Scenario,Outline之后,获取整行文本并逐个保存在文件中,并对目录下的所有文件重复相同。


0
投票

正如@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
© www.soinside.com 2019 - 2024. All rights reserved.