在Python中测试ImportErrors

时间:2009-06-27 14:41:37

标签: python unit-testing refactoring continuous-integration importerror

我们遇到了一个真正的问题,因为检查代码的人员因为某些内容被重构而无效。不可否认,这部分是因为我们的开发人员没有任何好的工具可以轻易找到这类错误。

是否有任何工具可以帮助在Python中找到ImportErrors?当然,这里的正确答案是“你应该使用你的单元测试。”但是,我处于遗留代码领域(至少是Michael Feathers的定义),所以我们的单元测试是我们正在大力研究的。

与此同时,有一种工具可以遍历每个目录并导入其中的每个文件,只是为了查找具有ImportErrors的任何脚本(比如说最近是否已重命名文件或类),这将是一件好事。 。我想这不会非常很难自己编写,但是有没有已编写的程序可以执行此操作?

2 个答案:

答案 0 :(得分:3)

Pychecker适合你。它导入模块并发现这些错误。

http://pychecker.sourceforge.net/

哦,和“pylint< modulename>”将导入模块,但我想你必须为你想要的每个模块调用一次,其中pychecker至少支持* .py。 (Pylint也支持* .py但在这种情况下不会导入模块。)

答案 1 :(得分:1)

这样的东西?

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

这样就够了,还是需要更多?

请注意,任何缺少if __name__ == "__main__":的模块 - 显然 - 会起飞并开始做事。