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

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


person Jess    schedule 05.04.2019    source источник


Ответы (3)


Как предложил @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
person Grasshopper    schedule 06.04.2019

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

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

person TheSociety    schedule 05.04.2019
comment
Вы можете использовать --dry-run или эквиваленты для запуска огурца, но ничего не выполнять. - person M.P. Korstanje; 05.04.2019
comment
Будет ли он возвращать список тегов и связанных с ними имен сценариев - person TheSociety; 05.04.2019
comment
Нет, но вы можете создать плагин для распечатки этой информации. - person M.P. Korstanje; 05.04.2019

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

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

получить все анализы. И:

grep -nri "@" .

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

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

person lourdes    schedule 01.05.2020