Теги (дым / регрессия) должны передаваться из 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.