assets | ||
checker | ||
cicd | ||
company | ||
console | ||
core | ||
correlation | ||
correlator | ||
dashboard | ||
deb | ||
deb_old/skeleton | ||
devices | ||
docker | ||
events | ||
frontend | ||
incident | ||
incident_export | ||
inputs | ||
license | ||
license_info | ||
logstash | ||
ncircc | ||
networkmap | ||
notifications | ||
perms | ||
rotation | ||
storage | ||
users | ||
.coveragerc | ||
.env.dev | ||
.env.prod | ||
.gitignore | ||
.gitlab-ci.yml | ||
.gitmodules | ||
CHANGELOG.md | ||
conftest.py | ||
finalschemaAPI.yaml | ||
make_release.py | ||
manage.py | ||
miggunicorn.sh | ||
product_version | ||
pytest.ini | ||
README.md | ||
requirements.txt | ||
requirements_test.txt | ||
schema.yml | ||
search-solid.svg | ||
start_dev_django_app.sh |
Подготовка к запуску тестов 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