#python-3.x #pytest #pytest-markers
#python-3.x #pytest #pytest-маркеры
Вопрос:
Я использовал настраиваемые маркеры pytest, как показано ниже,
@pytest.mark.test_id("AB-1234")
def test_test1():
pass
@pytest.mark.test_id("AB-1234")
def test_test2():
pass
@pytest.mark.test_id("AB-5678")
def test_test3():
pass
Здесь test_id
указано имя маркера, а «AB-1234» — значение.
Из командной строки как запустить все тесты с маркером test_id==AB-1234? Я пробовал разные варианты с -m
опцией, но не смог найти решение.
РЕДАКТИРОВАТЬ: я пытался pytest -m "AB-1234"
, но он запускает все тесты.
Комментарии:
1. Итак, что вы пробовали?
pytest -m "AB-1234"
должно сработать.2. @MrBeanBremen, я пытался
pytest -m "AB-1234"
, но он запускает все тесты. Нужно ли что-нибудь еще, например, регистрировать маркеры или что-то в этом роде?3. Ах, извините — я неправильно понял. Ваш маркер на самом деле
test_id
, так-m test_id
что будет работать — атрибут marker (напримерAB-1234
) просто игнорируется. Если вам нужны разные маркеры, вы должны назвать их примерно такtest_AB_1234
. Регистрация маркеров имеет смысл (позволяет избежать предупреждений и потенциальных столкновений), но не требуется для его работы.4. @MrBeanBremen, здесь test_id — это идентификатор jira, поэтому идея состоит в том, чтобы запускать все тесты с определенным идентификатором jira. Таким образом, в этом формате маркера (
test_id("AB-1234"
) нет способа отфильтровывать тесты с определенным идентификатором jira? переименование теста для меня не вариант.