Импорт тестируемого модуля для каждого теста, а не импорт на уровне модуля? - PullRequest
1 голос
/ 14 марта 2011

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

Затем, после поиска в Google, я обнаружил, что Лучшие практики Pylons / Pyramid объясняют, что "ошибки импорта ... никогда не должны препятствовать выполнению этих тестов".

Должно ли это быть стандартной практикой?

Я нахожу это немного уродливым, к тому же, их пример класса выглядит как незначительное чрезмерное проектирование.

1 Ответ

1 голос
/ 14 марта 2011

Если вы импортируете все модули, протестированные вверху файла, а не в функции unittest, тогда ошибка импорта будет препятствовать выполнению любых ваших тестов.У меня есть два мнения по этому поводу.Зависит от того, как вы проводите свои юнит-тесты.

Если вы запускаете тесты из командной строки или из Hudson или Jenkins, то вы заметите ошибку импорта и исправите ее немедленно.В этом случае я не думаю, что это проблема импортировать все на уровне модуля.Это, безусловно, более удобно и требует меньше дублирования.

Если есть вероятность, что ошибка импорта вызовет тихий сбой (скажем, если ваша инфраструктура unittest не может даже сказать вам, что произошла ошибка, если она не может импортировать ваштестовый модуль), тогда может быть безопаснее импортировать модули в ваши тестовые функции.

...