Как запустить сценарий огурца на основе идентификатора тестового набора, который добавляется с именем сценария? - PullRequest
0 голосов
/ 03 мая 2019

Я хотел запустить файл функций огурца на основе идентификатора теста, который содержит имя scanerio.

Я знаю, что мы можем использовать тег «functions» @CucumberOptions и указать номер строки для выполнения, например, «src / test / resources / Folder / myfile.feature: 7: 12» Это будет запускать сценарии в строке 7 и 12. Но я хотел запустить на основе идентификатора TC.

Ниже приведен код файла функции

@Run
Feature: Login Functionality

Scenario: First Test Case(TC.No:1)
    Given I perform action 1

Scenario: Second Test Case(TC.No:2)
  Given I perform action 2

Scenario: Third Test Case(TC.No:3)
    Given I perform action 3

Scenario: Fourth Test Case(TC.No:4)
   Given I perform action 4

Scenario: Fifth Test Case(TC.No:5)
    Given I perform action 5

Все сценарии в одной функции. Для кода файла функции выше, я хотел какой-то путь, через который я могу выполнить на основе TC Id. Например, я хочу выполнять только TC1, TC2 и TC5 (идентификаторы TC взяты из имен сценариев).

Существует файл свойств, который содержит идентификаторы TC для выполнения. Мой код должен прочитать файл, а затем выполнить только те идентификаторы TC. Это может помочь мне в сокращении количества автоматизированных TC, которые будут запущены. Возможно ли это?

Ответы [ 2 ]

1 голос
/ 04 мая 2019

Вы можете использовать name свойство @CucumberOptions или использовать '-n', если вы используете опцию cli.Он также поддерживает регулярные выражения.

Для запуска TC.No:1 и TC.No:4 используйте что-то вроде этого

@CucumberOptions(name = { "TC.No:1|TC.No:4" })

или

@CucumberOptions(name = { "TC.No:1","TC.No:4" })

Более подробную информацию можно получить по этой ссылке .

Поскольку вы читаете идентификаторы из файла, второй вариант является лучшим.Используйте метод cucumber.api.cli.Main class main() для выполнения функций.Вы можете создавать параметры динамически.Обратитесь к этому сообщению .

Ссылка на CLI документы .

0 голосов
/ 03 мая 2019

Не знаком с cucumber-jvm.

Но вот общая логика, которая должна работать (основываясь на моих знаниях Ruby Cucumber)

В хуке,Вы можете записать логику в метод under before, чтобы получить имя сценария scenario.name, а затем извлечь TC.No.Сравните TC.No и пропустите, если он не является частью вашего списка.Вот ссылка, которая даст информацию о том, как пропустить сценарий (используйте этот класс в методе before) https://junit.org/junit4/javadoc/4.12/org/junit/AssumptionViolatedException.html

Однако, лучше всего использовать теги, это будет иметьбыло легко, если у вас был тег @TCId-xx.Тем не менее вы можете написать простую программу, которая будет сканировать все файлы объектов и обновлять сценарии с помощью тега на основе TC.No в имени сценария.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...