Как изменить аргументы pytest? - PullRequest
0 голосов
/ 30 ноября 2018

Я обнаружил, что для этой цели я могу использовать функцию PyTest pytest_load_initial_conftests ()

https://docs.pytest.org/en/latest/example/simple.html#dynamically-adding-command-line-options

Но я не могу правильно реализовать этот пример (см. Ссылку).

pytest_load_initial_conftests () даже не запускается (просматривал отладку).Тесты выполняются в обычном режиме без каких-либо параметров (один поток), но я ожидал, что параметр "-n".

Я установил pytest и xdist.Всего два файла в проекте.Там нет pytest.ini.

Что я делаю не так?Пожалуйста, помогите запустить его.

conftest.py

import pytest
import os
import sys


def pytest_addoption(parser):
    parser.addoption('--some_param', action='store', help='some_param', default='')


def pytest_configure(config):
    some_param = config.getoption('--some_param')


def pytest_load_initial_conftests(args):
    if "xdist" in sys.modules:
        import multiprocessing
        num = max(multiprocessing.cpu_count() / 2, 1)
        args[:] = ["-n", str(num)] + args

test_t1.py

import inspect
from time import sleep
import os
import pytest


class Test_Run:

    def test_1(self):
        body()

    def test_2(self):
        body()

    def test_3(self):
        body()

    def test_4(self):
        body()

    def setup(self):
        pass

    def teardown(self):
        pass


def body():
    sleep(5)

1 Ответ

0 голосов
/ 30 ноября 2018

Согласно документации по pytest_load_initial_conftests:

Примечание: эта ловушка не будет вызываться для файлов conftest.py, только для плагинов setuptools.

https://docs.pytest.org/en/latest/reference.html#_pytest.hookspec.pytest_load_initial_conftests

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

...