Подтвердить что ты не робот

Параллельные испытания pytest

Я хочу запускать все мои тесты pytest параллельно, а не последовательно.

моя текущая настройка выглядит так:

class Test1(OtherClass):
    @pytest.mark.parametrize("activity_name", ["activity1", "activity2"])
    @pytest.mark.flaky(reruns=1)
    def test_1(self, activity_name, generate_test_id):
    """
    """

        test_id = generate_random_test_id()
        test_name = sys._getframe().f_code.co_name

        result_triggers = self.proxy(test_name, generate_test_id, test_id, activity_name)

        expected_items = ["response"]
        validate_response("triggers", result_triggers, expected_items)


    @pytest.mark.parametrize("activity_name", ["activity1", "activity2"])
    @pytest.mark.flaky(reruns=1)
    def test_2(self, activity_name, generate_test_id):
    """
    """

        #same idea...

Я запускаю свои тесты с помощью pytest -v -s.

В результате мои тесты выполняются последовательно, что занимает много времени, так как некоторые из них ждут ответов от удаленных серверов (тесты интеграции).

Есть ли способ параллельного запуска pytest?

4b9b3361

Ответ 1

Вы хотите pytest-xdist. Я думаю, Qxf2 объясняет это довольно хорошо: Qxf2 на Pytest-Xdist

Их Linux-команда немного слишком многословна для моих вкусов; Я использую:

pytest -n <NUM>

где <NUM> число параллельных работников.