Каково оптимальное соглашение об именах для тестовых файлов в Python?
Я ищу оптимальное соглашение об именах для тестовых файлов python, которые облегчают использование различных тестовых фреймворков (unittest, note, pyunit,...), а также дружественные с автоматическим обнаружением тестов для этих инструментов.
Мне просто нужен четкий набор рекоммендации, который потребует минимальной конфигурации для инструментов.
- Название каталога тестов?
test
или tests
?
- Где поставить тесты? в модуле /testdir или модуле /../testdir
- Проверить имена файлов с помощью подчеркивания или тире? test_0.py или test-0.py
Я знаю, у меня слишком много времени:)
Ответы
Ответ 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, я предпочитаю хранить тесты в подкаталоге в каждом пакете, чтобы не забывать запускать/трогать тесты, когда кто-то редактирует код;)