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