#python #pytest
Вопрос:
Я использую несколько светильников внутри декоратора светильников, как показано ниже:
@pytest.mark.usefixtures(fixture1, fixture2)
def test_me:
Файл светильников:
@pytest.fixture
def fixture1:
@pytest.fixture
def fixture2:
Проблема в том, что мне нужно, чтобы эти два приспособления запускались в определенной строке моего фрагмента кода, но эти два приспособления запускаются одновременно.
Как этого можно достичь?
Ответ №1:
fixture
s не являются триггерами одновременно, но оба срабатывают перед тестом, когда вы используете их в качестве аргументов, что является ожидаемым поведением. Вы также можете увидеть это в сообщении об ошибке, если попытаетесь вызвать прибор из теста
def test_me():
fixture1()
Прибор «fixture1» вызывается напрямую. Приборы не предназначены для
прямого вызова, но создаются автоматически, когда тестовые функции
запрашивают их в качестве параметров.
Если для всех ваших тестов требуются приспособления во время выполнения теста, не используйте обычные функции, а не приспособления. Если это использование уникально, вы можете добавить другую функцию, которую можно вызвать из устройства и из тестов
def fixture1_implementation():
...
@pytest.fixture
def fixture1():
fixture1_implementation()
def test_me():
fixture1_implementation()
# or
@pytest.mark.usefixtures('fixture1')
def test_example():
...