| 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