Pytest: определение пользовательского пути для сбора тестов - PullRequest
0 голосов
/ 01 мая 2019

Я собираю пакет для тестового бегуна с пользовательскими приспособлениями, pytest.ini и conftest. Я хочу, чтобы этот бегун мог принимать в качестве параметра путь к каталогу, и собрать тесты по этому пути и запустить их, используя мои пользовательские файлы конфигурации.

То, что я сейчас делаю, - это копирование данного каталога в известное место (тесты) внутри моего пакета, а затем программный запуск pytest с путем к тестам и параметрам --rootdir.

Dir tree:
- runner
---- tests
---- conftest.py
---- pytest.ini
---- fixtures.py
---- runner.py

Python code:
pytest_params = ['tests', '--rootdir=runner', <other params passed to pytest>]
pytest.main([pytest_params])

Который прекрасно работает. Но я не хочу копировать весь каталог тестов для каждого запуска.

Я пытался установить testpaths arg в pytest.ini и удалить аргумент пути из параметров pytest, но это приводит к тому, что pytest теряет файлы rootdir и pytest.ini и, конечно же, терпит неудачу.

Есть идеи?

1 Ответ

1 голос
/ 02 мая 2019

Вам необходимо явно указать расположение ini-файла.Вы можете использовать -c аргумент, чтобы указать местоположение вашего INI-файла.Чтобы загрузить настройки из каталога бегуна, вам нужно запустить conftest.py с pytest.

Ваш аргумент будет выглядеть так:

pytest_params = ['conftest.py', '-c=pytest.ini', '--rootdir=<path_of_external_tests', <other params passed to pytest>]
pytest.main(pytest_params)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...