У меня есть набор тестов, и я использую pytest и pytest- django.
Чтобы подвести итог: я пытаюсь провести интеграционное тестирование с браузером без головы и у меня есть pytest игнорировать определенные тесты, которые используются там, где я использую стандартный (без заголовка) браузер; Я бы хотел отменить выбор этих тестов с помощью реального визуального браузера, чтобы они не запускались в моем конвейере CI / CD.
Учитывая приведенный ниже пример pytest.ini
, если я запускаю pytest launcher
, он показывает как и следовало ожидать, отменяется выбор 1 теста (класс StandardBrowserTestCases содержит только 1 тест).
Однако, если я запускаю pytest other_app
(который также имеет класс StandardBrowserTestCases), он ничего не показывает будучи отмененным, и StandardBrowserTestCases запускается с другими тестами, а не отменяется.
[pytest]
addopts =
--nomigrations
--cov-config=.coveragerc
--cov=my_project
--cov=other_app
--cov=launcher
--cov=people
; # Ignore the StandardBrowserTestCases - these are only used for local
; # development / visual debug and contain no real valuable tests
--deselect=other_app/tests/test_integrations.py::StandardBrowserTestCases
--deselect=launcher/tests/test_integrations.py::StandardBrowserTestCases
--deselect=people/tests/test_integrations.py::StandardBrowserTestCases
--junitxml=./test-results/junit.xml
--cov-report html:./test-results/htmlcov
--html=./test-results/test_results.html
--self-contained-html
DJANGO_SETTINGS_MODULE = my_project.unit-test-settings
python_files = tests.py test_*.py *_tests.py
Использую ли я --deselect
правильно? Как я могу выяснить (устранить неполадки), чтобы понять, почему оно работает в одном приложении (launcher
), а не в другом (other_app
)? Как я могу получить pytest для отмены выбора этих тестов из каждого приложения вместо одного?