#python #pytest
#python #pytest
Вопрос:
pytest выдает предупреждение из-за неизвестной пользовательской метки при запуске моего набора тестов, несмотря на (надеюсь) правильную регистрацию в соответствии с документацией pytest (см. https://docs.pytest.org/en/stable/mark.html#registering-marks ).
Структура моего проекта Python (упрощена для этого запроса):
my_project/
src/
tests/
integration/
unit/
conftest.py
pytest.ini
Мой pytest.ini
(опять же, упрощенный):
# pytest.ini
[pytest]
markers =
incremental: marks related sequential tests to xfail after an earlier failure
поскольку my conftest.py
содержит @pytest.mark.incremental
рецепт, описанный в документации pytest (см. https://docs.pytest.org/en/latest/example/simple.html#incremental-testing-test-steps ).
Когда я запускаю pytest из командной строки из корневого каталога моего проекта (т. Е. /my_project/ $ pytest
), pytest выдает следующее предупреждение:
PytestUnknownMarkWarning: Unknown pytest.mark.incremental - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html
@pytest.mark.incremental
-- Docs: https://docs.pytest.org/en/stable/warnings.html
Однако, если я скажу pytest запустить каталог tests (т. Е. /my_project/ $ pytest tests
), Я не получу такого предупреждения. Аналогично, если я перемещаю свой pytest.ini
файл из каталога tests обратно в корневой каталог проекта, я снова не получаю сообщение об ошибке.
Есть ли способ настроить pytest, чтобы я мог сохранить свою структуру, tests/pytest.ini
чтобы избежать чрезмерного загромождения корневого каталога проекта, при этом гарантируя, что мой pytest.ini
файл правильно считывается pytest, когда я просто запускаю /my_project/ $ pytest
из командной строки?
Дополнительная информация может быть полезной:
(my-project-env) /Users/me/Documents/my_project/ $ pytest
============================================= test session starts =============================================
platform darwin -- Python 3.8.5, pytest-6.0.2, py-1.9.0, pluggy-0.13.1
rootdir: /Users/me/Documents/my_project
Ответ №1:
Я знаю, что это старый вопрос, но могу ли я предложить вам запустить pytest
его из папки, в которую вы поместили свой pytest.ini
файл?
cd tests
pytest
Я думаю, что это может решить вашу проблему.