Структура каталогов Python TDD - PullRequest
6 голосов
/ 25 марта 2012

Есть ли конкретная структура каталогов, используемая для TDD в Python?

В руководствах рассказывается о содержании тестов, а не о том, где их размещать

Из-за того, что ковыряешься в Python Koans, заподозришь что-то вроде:

/project/main_program.py         # This has main method, starts program
/project/classes/<many classes>.py
/project/main_test.py            # This simply directs unittest onto tests, can use parameters fed to it to customise tests for environment
/project/tests/<many tests>.py

# to run tests, type "python -m unittest main_test.py" (into a terminal)
# to run program, type "python main_program.py"

Я правильно это делаю?Есть хорошее руководство, которое учит иерархии каталогов для TDD?Я слышал, что смешивать файлы кода и тестов - это плохо.

Ссылки:

Ответы [ 2 ]

4 голосов
/ 26 марта 2012

В зависимости от вашего проекта любой стиль позволяет вам

  • Отделить код реализации от кода тестирования
  • Легко создавать новые тесты
  • Запускать все тесты за одну операцию (например, для регрессионного тестирования)

Python koans / etc - это всего лишь руководство.В конце концов, вы хотите поддержать DRY своими тестами юнитов и быть в состоянии тестировать легко, легко и интуитивно.В конце концов, вам решать, какова структура вашей папки.

Я чувствую, что вы слишком много внимания уделяете достижению соглашения, а не удовлетворению своего проекта.

1 голос
/ 30 марта 2012

Существует два основных параметра: в каталоге «test» (или «tests») верхнего уровня или в каталогах «test» в вашем пакете на каждом уровне.Преимущество первого состоит в упрощении последовательного проведения как модульных, так и других тестов.Последнее имеет то преимущество, что облегчает запуск ваших тестов с установленной версией кода, и рекомендуется в этом блоге , в котором описывается базовая структура, которая хорошо работает для проектов Python.

В конце концов, важно, чтобы их было легко найти и запустить.

...