Pytest не отменяет некоторые тесты (но должен быть в pytest.ini) - PullRequest
2 голосов
/ 04 мая 2020

У меня есть набор тестов, и я использую 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 для отмены выбора этих тестов из каждого приложения вместо одного?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...