Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
04 Июн 2024
2 мин
608

Запуск unit-тестов в типичной структуре каталогов

Часто в проектах на Python принято разделять unit-тесты, помещая их в отдельную директорию ‘test’. Такая структура может выглядеть следующим образом:

Часто в проектах на Python принято разделять unit-тесты, помещая их в отдельную директорию ‘test’. Такая структура может выглядеть следующим образом:

new_project/
    my_module/
        my_module.py
    test/
        test_my_module.py
    setup.py
    etc.

Однако при попытке запустить тесты, например, командой python test_my_module.py из директории test, возникает проблема. Импорт модуля my_module в test_my_module.py не удаётся, поскольку модуль не находится в текущем пути поиска.

Можно было бы изменить переменную окружения PYTHONPATH или использовать другие трюки, связанные с путем поиска, но это не самый простой и удобный способ. Также можно было бы просто скопировать файл теста в другую директорию, но это кажется немного глупым и упускает смысл разделения тестов в отдельную директорию.

Вместо этого применяют следующий подход. В Python есть встроенный модуль unittest, который обеспечивает инфраструктуру для написания и запуска тестов. Чтобы запустить все тесты из указанной директории, можно использовать команду python -m unittest discover.

Если необходимо запустить тесты из конкретного файла, можно использовать команду:

python -m unittest test.test_my_module

Здесь test.test_my_module — это путь к модулю теста, относительно корневого каталога проекта.

Таким образом, проблема запуска unit-тестов в типичной структуре каталогов решается достаточно просто и эффективно с помощью встроенного модуля unittest.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий