Запуск тестов
Команда run_tests использует тестовую инфраструктуру сабмодуля. Она импортирует Python-модули, ищет наследников BaseTest или BaseLocustTest и вызывает их метод run().
Команда
uv run manage.py run_tests
Это служебная команда для запуска тестовых классов сабмодуля и load tests, если они оформлены через BaseTest и BaseLocustTest.
По умолчанию: Без дополнительных параметров команда ищет подходящие тестовые классы в текущей рабочей директории.
Параметры
| Параметр | Описание |
|---|---|
--directory, -d |
Каталог, в котором ищутся Python-модули. По умолчанию используется текущая рабочая директория. |
--recursive, -r |
Включает рекурсивный обход поддиректорий при поиске модулей. |
--load_tests |
Переключает критерий поиска с BaseTest на BaseLocustTest. |
--report |
При использовании вместе с --load_tests сохраняет JSON-отчет с результатами запуска. |
Дополнительные примеры запуска
Искать тесты рекурсивно в каталоге
uv run manage.py run_tests --directory ./tests --recursive
Подходит, если тестовые модули разложены по подпапкам и их нужно обходить рекурсивно.
Запустить load tests и сохранить JSON-отчет
uv run manage.py run_tests --directory ./tests/load_tests --load_tests --report
В этом режиме команда ищет наследников BaseLocustTest и записывает агрегированный отчет в файл рядом с корнем проекта.
Как работает
- Проверяет существование переданного каталога и собирает список всех
.py-файлов, при необходимости рекурсивно. - Пропускает модули с именами, заканчивающимися на
_viewили_views, затем импортирует остальные файлы как Python-модули. - Ищет классы-наследники
BaseTestлибоBaseLocustTestи для каждого найденного класса вызывает методrun(). - Если выбран режим load tests и включен
--report, записывает агрегированный JSON-файл вида../ltest_report_D_M_Y.json.
Что важно учесть
- Команда запускает классы, унаследованные от
BaseTestиBaseLocustTest, поэтому тестовые сценарии должны быть оформлены в этой структуре. - Импорт модулей динамический, поэтому удобнее запускать команду из корня репозитория с корректным
PYTHONPATH. - Если подходящих наследников не найдено, команда завершится сообщением об ошибке, даже если Python-файлы в каталоге есть.
- Отчет для load tests записывается на уровень выше текущей рабочей директории, это поведение стоит учитывать перед запуском в CI или в контейнере.