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

时间:2019-04-05 12:14:42

标签: cucumber cucumber-jvm cucumber-java

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

3 个答案:

答案 0 :(得分:0)

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

可能是您需要使用某些脚本语言(如VB脚本),在文件中搜索@的位置并获取标签名称,然后将其一一保存在文件下。同样,在“方案”,“大纲”之后,获取整行文本并将其逐个保存在文件中,并对目录下的所有文件重复相同的内容。

答案 1 :(得分: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

答案 2 :(得分:0)

启动bash外壳并转到文件夹。类型:

grep -nri "Scenario:\|Scenario Outline:" .

获取所有测试。并且:

grep -nri "@" .

获取所有标签名称

(在两种情况下,请注意命令行末尾的点)