Структура хранения unit-тестов в Django-проекте
Задался вопросом покрытия unit-тестами кода. В питоне с этим не особо работал до этого. Погуглив, не могу определиться, какой вариант правильный (сомневаюсь между двумя). В Java-проектах встречал следующий подход:
src-|
|-main
|-com.trolololo.foo
|-test
|-com.trolololo.foo
То есть, есть директория с кодом, есть параллельная директория с тестами, и в ней повторяется структура основной директории от корня.
Погуглив, нашёл такой пример для питона - тесты ложатся в пакет с основным кодом, в файл tests.py или пакет tests. Для Django видел примеры, когда в каждом аппликейшене в корне создаётся файл/пакет tests, и всё пишется туда. Но вот не совсем понимаю, как быть при более сложной структуре.
Итак, есть 2 варианта. Вариант №1 - по аналогии с Java-проектами, но повторяется структура не проекта, а в рамках аппликейшена:
project
|- app1
|- services
|- foo.py
|- bar
|- qwe.py
|- models.py
|- views.py
|- tests
|- test_models.py
|- test_views.py
|- services
|- test_foo.py
|- bar
|- test_qwe.py
Вариант №2 - создавать файл tests.py, либо пакет tests рядом с кодом:
project
|- app1
|- services
|- foo.py
|- foo2.py
|- bar
|- qwe.py
|- test_qwe.py
|- tests
|- test_foo.py
|- test_foo2.py
|- models.py
|- views.py
|- tests
|- test_models.py
|- test_views.py
Какой вариант правильный?