3

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

4

3 回答 3

1

正如@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
于 2019-04-06T19:44:33.013 回答
0

启动 bash shell 并转到该文件夹​​。类型:

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

获得所有测试。和:

grep -nri "@" .

获取所有标签名称

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

于 2020-05-01T14:04:30.820 回答
0

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

可能您需要使用一些脚本语言,如 VB Script,在文件中搜索 @ 的位置并获取标签名称并一一保存在文件下。同样,在 Scenario, Outline 之后,获取整行文本并一个一个地保存在一个文件中,并对目录下的所有文件重复相同的操作。

于 2019-04-05T12:26:44.933 回答