Как сделать тест, который зависит от параметризованного теста. (Pytest) - PullRequest
1 голос
/ 27 января 2020

Почему второй тест пропущен? Я хочу, чтобы второй тест зависел от трех тестов, которые параметризованы как test_first. Как это сделать?

import pytest
from pytest_dependency import depends
param = [10,20,30]
@pytest.mark.parametrize("param", param)
def test_first(param):
    assert(True)

@pytest.mark.dependency(depends=['test_first'])
def test_second():
    assert(True)

Вывод

t.py::test_first[10] PASSED
t.py::test_first[20] PASSED
t.py::test_first[30] PASSED
t.py::test_second SKIPPED

Я хочу t.py::test_second PASSED

ps Может быть, спросили раньше, но я решил опубликовать вопрос в любом случае, потому что трудно найти кратко сформулированный вопрос об этой проблеме.

Ответы [ 3 ]

2 голосов
/ 27 января 2020

Из этого примера я вижу https://pytest-dependency.readthedocs.io/en/latest/usage.html, что вы также должны украсить test_first с помощью @ pytest.mark.dependency ()

0 голосов
/ 27 января 2020

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

import pytest
from pytest_dependency import depends
param = [10,20,30]

@pytest.mark.dependency(name="a1")
def test_dum():
    pass

@pytest.mark.parametrize("param", param)
@pytest.mark.dependency(name="a1", depends=['a1'])
def test_first(param):
    assert((param == 10) or (param == 20) or (param == 31))

@pytest.mark.dependency(depends=['a1'])
def test_second():
    assert(True)
0 голосов
/ 27 января 2020

Ну, я не знаю ничего о том, как работает pytest-зависимость, но обычно параметризованные тесты представлены / названы , включая значение параметра , например, внутренне test_first[10] и test_first[20] - это разные тесты, возможно, попробуйте который? Просматривая документацию , она косвенно намекает на то, что в этом случае , обратите внимание, как помощник instances генерирует имена вида $testname[$params...].

Документация также говорит о (предлагает?) явная маркировка параметризованных экземпляров: https://pytest-dependency.readthedocs.io/en/latest/usage.html#parametrized -test

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...