CI/CD TEST | Status | Code Quality |
---|---|---|
- Запуск по кнопке
Manual TestRun
->Run Workflow
- Предполагается что уже установлена версия Python 3.12 и настроен venv
- Выполнить для установки зависимых пакетов:
(venv)$ cd <директория проекта>
(venv)$ pip install -r requirements.txt
Конфигурация запуска реализована по приоритетам:
- Приоритет №1: параметризация из командной строки (для CI/CD pipeline)
- Приоритет №2: параметризация из локального файла
config.local.json
(не коммитится в Git) - Приоритет №3: параметризация из общего файла
config.json
(коммитится в Git)
Пример использования проброса параметров конфигурации при запуске тестов:
$ python -m pytest <путь к папке tests>
Пример запуска тестов с фильтром по маркерам, установленным в файле pytest.ini
:
$ python -m pytest <marker1> ... <markerN>
- Для просмотра всех маркеров:
$ pytest --markers
- Для просмотра всех доступных fixtures:
$ pytest --fixtures
fixtures are shown according to specified file_or_dir or current dir if not specified
fixtures with leading '_' are only shown with the '-v' option
- На данном этапе реализации предусмотрен отчет по копке
чтобы просмотреть отчет о запуске автотестов на этапе CI pipeline on:
push
- логфайлы копятся в папке
.log
(папка создается автоматически) - для каждого тестового прогона создается отдельный уникальный логфайл с
hostname
иtimestamp
в имени -
- при запуске прогона с xdist создается несколько логфайлов по числу воркеров с
worker_id
в имени
- при запуске прогона с xdist создается несколько логфайлов по числу воркеров с
-
- если воркеров больше чем тестов, то при следующем запуске удаляются пустые логфайлы, созданные xdist в предыдущей сессии
-
настройки логирования находятся в
pytest.ini
-
логирование в консоль сообщений о выполнении Allure steps из кода тестов настраивается параметром:
log_cli = true
-
- для отключения сообщений с Allure steps в консоль ->
log_cli = false
- для отключения сообщений с Allure steps в консоль ->
-
- при запуске с xdist Allure steps в консоли всегда отсутствуют
-
- для переопределения существующих в
pytest.ini
ключей в команде запуска:pytest -o log_cli=<new_value>
- для переопределения существующих в
-
- отключение сообщений с Allure steps в логфайл - не предусмотрено (всегда присутствуют)
-
детализация сообщений в файле и в консоли зависит от ENV.DEBUG flag:
-
- по умолчанию в консоли установлен:
log_cli_level = INFO
-
- при выставлении переменной окружения
DEBUG = True
: -
- -> уровень сообщений в консоль остается бех изменения:
log_level = INFO
- -> уровень сообщений в консоль остается бех изменения:
-
- -> уровень сообщений в логфайл понижается до
log_level = DEBUG
- -> уровень сообщений в логфайл понижается до
- при выставлении переменной окружения
- отчет с результатами запуска каждого тестового прогона формируется в папке
allure-results
-
- папка создается автоматически
-
- содержимое папки очищается от файлов прошлого прогона автоматически
- настройка папки осуществляется в
pytest.ini
addopts = --alluredir allure-results --clean-alluredir
- у цветных строк лога имеются артефакты в отчете Allure: allure-framework/allure-python#806
- для того чтобы папка
allure_results
создавалась в корне проекта при запуске тестовой сессии из окна IDE (PyCharm) необходимо настроить в IDE (PyCharm) Run/Debug Configurations
Search -> Run/Debug Configurations -> Edit configuration templates... -> Python tests -> Autodetect
-
- заполнить в окне
Autodetect
полеWorking directory:
актуальным значением<PROJECT_ROOT>
- заполнить в окне
-
- запомнить Template
-
- удалить все существующие Run/Debug Configurations сделанные до обновления Template