Структура хранения unit-тестов в Django-проекте

Рейтинг: 7Ответов: 1Опубликовано: 12.03.2015

Задался вопросом покрытия 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

Какой вариант правильный?

Ответы

Ответов пока нет.