Подтвердить что ты не робот

Каково оптимальное соглашение об именах для тестовых файлов в Python?

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

Мне просто нужен четкий набор рекоммендации, который потребует минимальной конфигурации для инструментов.

  • Название каталога тестов? test или tests?
  • Где поставить тесты? в модуле /testdir или модуле /../testdir
  • Проверить имена файлов с помощью подчеркивания или тире? test_0.py или test-0.py

Я знаю, у меня слишком много времени:)

4b9b3361

Ответ 1

Не вызывайте каталог test или он будет конфликтовать со встроенным пакетом test.

Соглашения об именах определены в PEP 8. См. Раздел "Соглашения об именах". Подчеркивания лучше, чем дефисы.

Макет вашего пакета немного более гибкий. Я имею тенденцию делать следующее:

package
|-- package
|  |-- __init__.py
|  `-- <etc>
|-- tests
|  `-- <etc>
|-- setup.py
|-- README
|-- LICENCE
`-- <etc>

Это позволяет проводить тесты отдельно от самого пакета. Установка пакета с помощью setup.py может установить только источник, который убирает устных переводчиков. Тесты существуют для разработчиков, которые нуждаются в них, когда получают источник пакета.

Для получения дополнительной информации о пакетах Python вы должны посмотреть The Hitch Hiker Guide to Packaging.

Ответ 2

Это зависит от того, какой инструмент вы используете для запуска тестов.

Если вы используете nosetest, философия, используемая для обнаружения теста, довольно проста:

Если это похоже на тест, его тест.

Если вы используете py.test, соглашения pretty открыть тоже.

О вопросе "где поставить тест", personnaly, я предпочитаю хранить тесты в подкаталоге в каждом пакете, чтобы не забывать запускать/трогать тесты, когда кто-то редактирует код;)