Пример структуры проекта:
project-root/
├── .github/
│ └── workflows/
│ └── python-tests.yml
├── tests/
│ ├── test_example.py
│ └── test_another.py
├── requirements.txt
└── ...
- Создайте папку .github/workflows в корне вашего репозитория, если ее еще нет.
- Внутри этой папки создайте файл с названием, например, python-tests.yml.
on:
Workflow запускается при каждом пуше и при создании Pull Request в ветку main.
jobs:
Здесь определен один job test, который выполняется на виртуальной машине ubuntu-latest.
Шаги внутри jobs:
- Checkout code: Клонирует ваш репозиторий.
- Set up Python: Устанавливает указанный Python (в данном случае версии 3.9).
- Install dependencies: Устанавливает зависимости из файла
requirements.txt
. - Run tests: Выполняет тесты с помощью
pytest
.
pytest
будет искать файлы, соответствующие шаблону test_*.py
или *_test.py
в папке /tests
.
--html=report.html
: Генерирует HTML-отчёт с результатами тестов.
--self-contained-html
: Делает HTML-отчёт автономным, включив в него все стили и скрипты.
Все найденные тесты будут запущены, а результат будет сохранён в файле report.html
.
Теперь тесты из папки /tests
будут выполняться при каждом запуске Workflow.
Этот Workflow полезен для автоматической проверки кода перед слиянием изменений или деплоем.