pytest — запуск тестов с настраиваемыми маркерами

#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? переименование теста для меня не вариант.