Django Coverage
Возможно не все знают, я например не знал, что помимо юнит-тестов есть еще такая небольшая библиотека для питона: coverage. Делает простую вещь: показывается какой код выполнялся, а какой нет. Результаты показывает в нескольких форматах. Особенно красиво это выглядит в формате html - создается целая папка где по каждому модулю показывается с цветовой раскраской сколько в процентах покрытие кода, сколько всего строк и сколько покрыто. Можно открыть исходники каждого модуля и увидеть с подсветкой какой код не выполнялся.
Дополнительно для Django написано небольшое приложение django-coverage, которое заменяет стандартный класс тестирования.
Настроить все это для django-проекта просто:
1. Ставим coverage и django-coverage:
sudo port install py26-coverage (специфично для мака, на линуксе ставим из пакетов)
sudo pip-2.6 install django-coverage
2. Создаем папку, куда будут класться html-файлы отчетов покрытия кода:
sudo chown
mkdir build/coverage
3. В settings.py проекта добавляем две строчки
TEST_RUNNER = 'django_coverage.coverage_runner.run_tes
COVERAGE_REPORT_HTML_OUTPUT_DIR = './build/coverage'
4. Запускаем юнит-тесты джанго-проекта: ./manage.py test и смотрим степень покрытия кода в папке build/coverage.
Результаты нескольких дней использования: coverage рулит! Реально нашел около четырех багов за счет увеличения площади покрытия кода тестами!









