pytest не выполняет тест / __ init__.py файл - PullRequest
0 голосов
/ 09 мая 2019

У меня следующая проблема: у меня есть проект, небольшая библиотека и тестовый каталог для lib, что-то вроде этого:

project \

+ mylib \

++ test \

В test__init__.py у меня есть следующий код:

SCRIPT_DIR = os.path.dirname(os.path.realpath(os.path.join(os.getcwd(), os.path.expanduser(__file__))))
sys.path.append(os.path.normpath(os.path.join(SCRIPT_DIR, "test_data_files")))

Поэтому просто обновите syspath, чтобы иметь возможность открывать некоторые файлы с тестовыми данными.Когда я запускаю тест, щелкнув правой кнопкой мыши по каталогу в Pycharm, он выполняется успешно, но когда я запускаю

python -m pytest lib/test

, он не выполняет тестовый файл / init .py и завершается с ошибкой FileNotFoundError, как он может найти файлы тестовых данных.

В чем причина такого поведения и как я могу это исправить?

Спасибо.

1 Ответ

0 голосов
/ 09 мая 2019

Если вы запустите pytest в lib/test, он будет искать test_*.py файлы и запускать в них тесты.Как вы узнали, он не импортирует пакет test, поэтому __init__ никогда не импортируется.Если вы запускаете pytest «глобально», он импортирует пакеты, в которых он запускает тесты, так что ваш __init__ импортируется.

Для исправления вы можете использовать pytest conftest.py.

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