← Разработка · ← Участие в разработке · README
uv run pytest provider/tests/ -vС отчётом о покрытии:
uv run pytest provider/tests/ -v --cov=provider/ --cov-report=term-missingКаждый push и PR запускают два параллельных задания через test.yml:
| Задание | Что делает |
|---|---|
test-* |
Запускает pytest с проверкой покрытия, загружает отчёт в Codecov |
lint-* |
Запускает ruff, mypy, codespell, pre-commit |
Тесты запускаются на основе music-assistant/server@dev (без форка — лёгкий CI).
| Инструмент | Назначение |
|---|---|
uv |
Управление виртуальным окружением и зависимостями |
Python 3.12 |
Целевая версия языка |
pytest |
Фреймворк для тестов |
pytest-cov |
Сбор данных о покрытии |
Codecov |
Загрузка отчётов о покрытии (автоматически в CI) |
ruff |
Линтер и форматтер Python |
mypy |
Статический анализ типов |
codespell |
Проверка орфографии в исходном коде |
pre-commit |
Хуки для проверки перед коммитом |
Запустить все хуки pre-commit (рекомендуется перед PR):
uv run pre-commit run --all-filesТолько проверка типов:
uv run mypy provider/Только линтинг:
uv run ruff check provider/
uv run ruff format --check provider/Отчёты о покрытии автоматически загружаются в Codecov при каждом push в CI. Локально просмотреть покрытие:
uv run pytest provider/tests/ --cov=provider/ --cov-report=html
open htmlcov/index.htmlЕсли тесты или линтеры упали в CI, автоматически создаётся GitHub-задача с меткой incident:ci.
Подробнее о процессе работы с инцидентами: Управление инцидентами.