Импорт тестируемого модуля для каждого теста, а не импорт на уровне модуля?

1

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

Затем, после Googling, я обнаружил, что "Пилоны/пирамидальные рекомендации" объясняют, что "ошибки импорта... никогда не должны помешать этим тестам быть запущенным".

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

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

Теги:
unit-testing
pylons

1 ответ

1
Лучший ответ

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

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

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

  • 0
    Это в основном и моя философия. nose довольно неплохо справляется со своей задачей, не занимаясь этим делом, поэтому я думаю, что я приму ваш ответ как хорошее общее правило.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню