Передача тегов из CLI в Pytest-bdd и выполнение определенных сценариев - PullRequest
0 голосов
/ 06 июня 2019

Теги (дым / регрессия) должны передаваться из CLI и интерпретироваться в conftest.py для выполнения тех сценариев, которые удовлетворяют тегам.

Я посмотрел документ pytest-bdd здесь и не удалось найти соединение.

Схема сценария содержит: (в качестве составных элементов python-декораторов)

@pytest.mark.smoke
Scenario Outline: "VALID" Test

@pytest.mark.smoke
@pytest.mark.regression
  Scenario Outline: "INVALID" Test

@pytest.mark.regression
  Scenario Outline: "MIXED" Test

conftest.py

def pytest_bdd_apply_tag(tag, function):    
    if 'smoke' not in tag:  #what should I use to take values from CLI and execute those
        marker = pytest.mark.skip # skips scenario where 'smoke' is not marked
        marker(function)
        return True
    return None

код выше в conftest.py пропускает все сценарии.Ввод CLI:

pytest --env='qa' -m 'smoke'

, где pytest_addoption используется для --env='qa' и pytest_bdd_apply_tag для -m.

Мы хотим выполнить только те сценарии, которыепометил дым (допустимый и недействительный), когда я пропускаю дым;сценарии, в которых отмечена регрессия (INVALID & MIXED), когда я передаю регрессию и задымляю по умолчанию, когда я не передаю какой-либо параметр в CLI через параметр -m.

1 Ответ

0 голосов
/ 10 июня 2019

Плохо, мне было интересно, как меня вводят в заблуждение маркеры pytest со строками тега сценария, как упомянуто в документации.

Изменения, которые я внес в файл функций,

@smoke
Scenario Outline: "VALID" Test

@smoke @regression
  Scenario Outline: "INVALID" Test

@regression
  Scenario Outline: "MIXED" Test

Я удалил метод pytest_bdd_apply_tag из conftest.py.

Предоставление этого в командной строке работает для меня

pytest -m "regression" --env="uat"
...