Как пропустить конкретный параметризованный тест? - PullRequest
2 голосов
/ 13 мая 2019

У меня есть параметризованный тест Pytest, такой как:

testdata = [
    MyDB(id="0001", result=True),
    MyDB(id="0002", result=False)
]
@pytest.mark.parametrize("data", testdata, ids=[repr(id) for id in testdata])
def test_1(data):
    pass

Вопрос в том, как я могу использовать @ pytest.mark.skipif, чтобы пропустить тест с идентификатором "0001"?

1 Ответ

2 голосов
/ 13 мая 2019

Вы можете использовать pytest.param ( ссылка ), который принимает необязательный аргумент marks:

testdata = [
    pytest.param(MyDB(id="0001", result=True), marks=pytest.mark.skip)
    MyDB(id="0002", result=False)
]
@pytest.mark.parametrize("data", testdata, ids=[repr(id) for id in testdata])
def test_1(data):
    pass

Вы также можете (и этохорошая практика) укажите, почему тест пропущен:

pytest.param(MyDB(id="0001", result=True),
              marks=pytest.mark.skip(reason=('a good and informative reason'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...