Моя структура каталогов тестов выглядит следующим образом:
root
+ --- tests
| + --- unit_tests
| | + --- some_app_tests
| | + --- another_app_tests
| | | run_tests.py
| |
| + --- integrate_tests
| + --- some_app_tests
| + --- another_app_tests
| | run_tests.py
|
+ --- project_root
+ --- some_app
+ --- another_app
Для каждого отдельного приложения я создаю coresponding каталог с тестами в директории unit- и integrate. Каждый каталог является отдельным проектом django с пользовательскими настройками, и для запуска тестов есть команда управления.
Кроме того, размещение тестов в одном каталоге имеет одно приятное преимущество - когда проект развертывается, нет смысла развертывать тесты вместе с ним. Поэтому я просто убираю один каталог и все.
(для запуска тестов я использую django-sane-testing: https://github.com/Almad/django-sane-testing)