Тестирование для ImportErrors в Python - PullRequest
1 голос
/ 27 июня 2009

У нас реальная проблема с людьми, проверяющими код, который не работает, потому что что-то было переработано. По общему признанию, это отчасти потому, что у наших разработчиков на самом деле нет хороших инструментов для легкого поиска подобных ошибок.

Существуют ли какие-либо инструменты, которые помогут найти ImportErrors в Python? Конечно, правильный ответ здесь: «Вы должны использовать свои юнит-тесты для этого». Но я нахожусь в устаревшем коде (по крайней мере, по определению Майкла Фезерса), поэтому наши модульные тесты - это то, над чем мы работаем.

В то же время было бы неплохо иметь какой-то инструмент, который будет проходить через каждый каталог и импортировать каждый файл в нем, просто чтобы найти любые сценарии, которые имеют ImportErrors (например, если файл или класс был недавно переименован) , Я полагаю, что это не будет ужасно трудным для себя, но есть ли программы, которые уже написаны для этого?

Ответы [ 2 ]

3 голосов
/ 27 июня 2009

Pychecker для вас. Он импортирует модули и найдет эти ошибки.

http://pychecker.sourceforge.net/

О, и "pylint " будет импортировать модуль, но я думаю, вам придется вызывать его один раз для каждого модуля, который вы хотите, где pychecker по крайней мере поддерживает * .py. (Pylint также поддерживает * .py, но не импортирует модули в этой ситуации).

1 голос
/ 27 июня 2009

Как то так?

import os
for x in os.listdir("some/path"):
    execfile( x )

Этого достаточно, или вам нужно больше?

Обратите внимание, что любой модуль, в котором отсутствует if __name__ == "__main__":, очевидно, взлетит и начнет делать что-либо.

...