【问题标题】:Testing for ImportErrors in Python在 Python 中测试 ImportErrors
【发布时间】:2009-06-27 14:41:37
【问题描述】:

我们遇到了一个真正的问题,即人们签入的代码由于某些内容被重构而无法正常工作。诚然,这部分是因为我们的开发人员实际上并没有任何好的工具来轻松发现这些错误。

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

与此同时,最好有某种工具来遍历每个目录并导入其中的每个文件,以查找任何具有 ImportErrors 的脚本(例如,如果文件或类最近被重命名) .我想这不会非常很难自己编写,但是有没有已经编写的程序可以做到这一点?

【问题讨论】:

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


    【解决方案1】:

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

    http://pychecker.sourceforge.net/

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

    【讨论】:

      【解决方案2】:

      这样的?

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

      够了吗,还是需要更多?

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

      【讨论】:

      • 还有更多我想补充的。但我想如果我决定自己写的话,这已经是一个足够好的开始了。 :-)
      猜你喜欢
      • 2021-05-09
      • 1970-01-01
      • 2011-10-14
      • 2014-10-28
      • 2014-05-29
      • 2015-10-11
      • 2012-07-18
      • 2019-12-03
      相关资源
      最近更新 更多