pytest - запускать каждый тест в отдельном процессе - PullRequest
0 голосов
/ 05 июля 2018

Я запускаю большой набор тестов python с использованием pytest, и некоторые результаты теста зависят от порядка выполнения тестов. Например, если тест B запускается после теста A, он может потерпеть неудачу из-за некоторых инициализаций, выполненных в тесте A, которые влияют на тест B. Чтобы обойти эту проблему, я хотел бы запускать каждый тест в новом процессе, но тесты должны выполняться последовательно, а не параллельно. Есть ли способ сделать это с pytest?

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Использование @pytest.mark.order

@pytest.mark.order2
def test_foo():
    assert True

@pytest.mark.order1
def test_bar():
    assert True
0 голосов
/ 05 июля 2018

Я бы порекомендовал вам реализовать setup_method () и teardown_method (), который может очистить инициализации, которые вы делаете в тестах. Таким образом, вы можете избавиться от ваших зависимостей в порядке выполнения ваших тестов.

Другой альтернативой будет использование прибора.

Но если вы не хотите запускать тесты параллельно, я не вижу преимущества запуска каждого теста в новом процессе. Хотя, если вам все еще это нужно, вы можете запустить новый процесс в вашем setup_method () и прикрепить текущий тест к этому процессу. Ваш teardown_method () может затем убить этот процесс.

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