Я написал тесты pytest единицы для упаковки, которую я написал со структурой, как показано ниже:Использование параметров командной строки с pytest --pyargs
- PackageDir
- setup.py
- MyPackage
- __init__.py
- functionpackage
- __init__.py
- functionmodule.py
- тест
- __init__.py
- conftest.py
- unit_tests
- __init__.py
- е unctionmodule_test.py
Теперь PackageDir/MyPackage/тест/conftest.py устанавливает два требуемые параметры командной строки, которые будут созданы в качестве приспособлений для испытаний. Когда я запускаю что-то вроде:
pytest packagedir/mypackage/ --var1 foo --var2 bar
Все тесты выполняются, и параметры командной строки читаются правильно. Тем не менее, когда я пип установить пакет (который устанавливает тестовые и unit_tests пакеты правильно), а затем попробовать что-то вроде этого:
pytest --pyargs mypackage --var1 foo --var2 bar
Я получаю сообщение об ошибке, как это:
usage: pytest [options] [file_or_dir] [file_or_dir] [...]
pytest: error: unrecognized arguments: --var1 foo --var2 bar
Если я бегу:
pytest --pyargs mypackage
тесты проходят, но не работают, потому что аргументов командной строки нет.
Может кто-нибудь объяснить мне, что здесь может быть неправильным? Я мог догадаться и сказать, что это потому, что аргумент -pyargs меняет интерпретацию параметров командной строки для pytest, но это всего лишь предположение. Я хотел бы знать, действительно ли я могу это исправить.
Главной целью было бы разрешить кому-то установить mypackage, а затем легко протестировать его, не перейдя на сайт установки пакетов.