Переопределение отметки для одного теста в PyTest - PullRequest
0 голосов
/ 15 ноября 2018

Для каждого сохраненного теста имеется файл теста с глобальным маркером:

from pytest import mark

pytestmark = mark.unit

Работает как положено, и все тесты из этого файла помечены как unit. Однако я хотел бы переопределить метку для одного теста, чтобы он больше не имел маркера unit.

Когда я использую декоратор в тестовой функции, которую я хочу изменить, вместо переопределения исходного маркера, он содержит как unit, так и новые integration маркеры:

@mark.integration
def test_integration():
    pass

Я проверил источники маркера-декоратора и похоже, что он вызывает store_mark и не имеет дополнительных свойств, которые позволили бы мне переопределить существующие тестовые маркеры.

Существуют ли идиоматические решения для переопределения существующих тестовых отметок или я должен просто хранить тесты в отдельном файле?

1 Ответ

0 голосов
/ 18 ноября 2018

Не думаю, что для этого есть встроенная функциональность. У вас есть несколько вариантов:

Реализация плагина, который дает вам unmark декоратор. Кто-то уже пробовал это , но я не проверял это.

Или Поместите все свои unit тесты в класс и украсьте класс маркером.

import pytest

@pytest.mark.unit
class TestUnits:
    def test1(self):
        pass

@pytest.mark.integration
def integration_test():
    pass
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...