2.5 KiB
Подготовка к запуску тестов unit, integration, live_firewall
Перед запуском тестов, нужно подготовить базу данных, для этого запускаем:
DJANGO_SETTINGS_MODULE=console.settings.test python manage.py makemigrations
DJANGO_SETTINGS_MODULE=console.settings.test python manage.py migrate
Запуск тестов unit
Для запуска тестов, нужно активировать виртуальное окружение и запустить:
pytest --disable-warnings -m unit
Запуск тестов интеграционных
Для запуска интеграционных тестов, вызываем:
pytest --disable-warnings -m integration
При этом, интеграционные можно запускать либо в докере, либо на развернутой виртуалке, тк они завязаны на внешние сервисы.
Запуск тестов на живом AIF
Для запуска тестов на живом AIF, вызываем:
pytest --disable-warnings -m live_firewall
Перед каждым запуском теста проводится проверка доступности AIF, в случае если AIF не доступен тест завершается с состоянием False
После выполенения последнего теста "test_live_set_firewall_suricata" AIF уходит в перезагрузку длительностью ~40-60 сек.
Важно! Pipline запускает тесты последовательно, согласн очереди запросов от пользователей GitLab, управляет этим отдельный раннер
Оценка покрытия тестов
Чтобы оценить общее покрытие кода тестами, нужно в docker запустить следующие команды:
coverage run -m pytest --disable-warnings
coverage report
Для HTML результата:
coverage html
Отключение тестов при push'e и merge request'e
Тесты в пайплайне запускаются автоматически. Чтобы тесты при push'e и merge request'e не запускались, необходимо указать в сообщении коммита ключ: #no_test