2012-02-15 3 views
5

Я разрабатываю коллекцию пакетов/модулей Python (без исполняемых файлов). Каков правильный/лучший способ настройки иерархии файлов для тестирования. Я могу думать о двух сценариях:Соответствующая иерархия файлов для unittesting в Python

Сценарий 1:

AllPackages/ 
    package1/ 
     module1-1.py 
     module1-2.py 
    package2/ 
     module2-1.py 
     module2-2.py 
    tests/ 
     package1/ 
      test_module1-1.py 
      test_module1-2.py 
     package2/ 
      test_module2-1.py 
      test_module2-2.py 

Сценарий 2:

AllPackages/ 
    package1/ 
     module1-1.py 
     module1-2.py 
     tests/ 
      test_module1-1.py 
      test_module1-2.py 
    package2/ 
     module2-1.py 
     module2-2.py 
     tests/ 
      test_module2-1.py 
      test_module2-2.py 

Я новичок в модульное тестирование (я знаю, что я должен был сделать это давно) так что я Я не знаю, какой из этих подходов лучше, и я ищу советы от тех, у кого больше опыта.

Спасибо!

ответ

1

2-й сценарий позволяет иметь подключаемые пакеты и используется по крайней мере в Django framework (чтобы указать некоторые полномочия). Если вы используете простой модуль unittest, у него есть утилита discover, в которой вы найдете все тесты, которые у вас есть в папке проекта, независимо от того, как вы их организовали, поэтому здесь подходит и второй подход.

+0

Спасибо, это похоже на хорошее решение. Мне нравится, что он расширяется, когда я добавляю больше пакетов и модулей. – jlconlin

1

Сценарий 1 лучше, на мой взгляд. Это упрощает работу, например, при развертывании. Вы не хотите разворачивать тестовый код, поэтому просто опустите каталог tests/ в свой пакет. Этот подход намного более чист.

Сценарий 2 является грязным; Я не вижу никакого преимущества в смешивании тестового кода и производственного кода таким образом.

Смежные вопросы