Я пытаюсь запустить тестовую функцию на разных приборах. Например, в моем файле conftest.py
у меня есть:
import pytest
@pytest.fixture
def myfixture_1():
yield 1
@pytest.fixture
def myfixture_2():
yield 2
Затем в моем файле test_me.py
у меня есть:
def test_fixture_1(myfixture_1):
assert myfixture_1 == 1
def test_fixture_2(myfixture_2):
assert myfixture_2 == 2
И это прекрасно работает. Если я запускаю pytest tests/mytest.py
, я получаю
2 passed in 0.03s
Однако, если я пытаюсь переписать test_me.py
как
@pytest.mark.parametrize(
"value, fixture",
[(1, myfixture_1), (2, myfixture_2)]
)
def test_me_too(self, value, fixture):
fixture == value
, тогда я получу
E NameError: name 'myfixture_1' is not defined
Как можно Я изменяю свой код, чтобы параметризовать приборы?