#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 "@" .
Чтобы получить все имена тегов
(В обоих случаях обратите внимание на точку в конце командной строки)