Как можно получить все теги и сценарии cucumber без запуска тестов

#cucumber #cucumber-jvm #cucumber-java

#cucumber #cucumber-jvm #cucumber-java

Вопрос:

Я хотел бы каким-то образом получить список всех тегов, которые я использовал в своем проекте, и получить все названия сценариев cucumber, которые у меня есть в моем проекте, без запуска тестов. Может ли кто-нибудь помочь мне, как я могу это сделать?

Ответ №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
  

Ответ №2:

Насколько мне известно, cucumber не позволит вам получить список всех тегов и имен сценариев без выполнения тестов.

Может быть, вам нужно будет использовать какой-нибудь язык сценариев, такой как VB Script, выполнить поиск позиции @ в файле и получить имя тега и сохранить один за другим в файле. Аналогично, после сценария, наброска, получите текст всей строки и сохраните один за другим в файле и повторите то же самое для всех файлов в каталоге.

Комментарии:

1. Вы можете использовать --dry-run или эквиваленты для запуска cucumber, но ничего не выполнять.

2. Вернет ли он список тегов и название связанных с ними сценариев

3. Нет, но вы можете создать плагин для распечатки этой информации.

Ответ №3:

Запустите оболочку bash и перейдите в папку. Тип:

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

чтобы получить все тесты. И:

 grep -nri "@" .
  

Чтобы получить все имена тегов

(В обоих случаях обратите внимание на точку в конце командной строки)