【问题标题】:How to write a unittest for importing a module in Python如何编写用于在 Python 中导入模块的单元测试
【发布时间】:2010-03-04 17:55:26
【问题描述】:

编写单元测试以查看模块是否正确安装的pythonic方法是什么?我的意思是正确安装,它不会引发 ImportError: No module named foo。

【问题讨论】:

  • 一般来说,单元测试的内容并不多。你不相信import 声明吗?代码的导入行非常简单——也很容易检查——以至于对它进行单元测试似乎有点傻。为什么要对import 语句进行单元测试?
  • 因为我必须在不同的服务器上部署我的 Django 应用程序并且它需要一些额外的模块,所以我想确保安装了所有必需的模块。例如,确保为 python 2.5 安装了 simplejson。我当然相信 import 语句,我只是不想忘记安装我需要的模块。
  • 似乎您正在生产环境中运行测试,这……很奇怪。无论如何,您正在测试您是否具有适当的依赖关系,这是包管理器的工作。为您的应用程序创建包,或使用 pythonic 依赖管理器(想到 pip 和 pip install -r requirements.txt in virtualenv)。

标签: python django unit-testing


【解决方案1】:

因为我必须部署我的 Django 不同服务器上的应用程序和 它需要一些我想要的额外模块 确保所有必需的模块 已安装。

这根本不是单元测试场景。

这是一个生产准备过程,从技术上讲,它不是对您的应用程序的测试。

这是一个关于环境的查询。我们的包括很多东西。

从这样一个简单的脚本开始。添加您需要确保存在的每项内容。

try:
    import simplejson
except ImportError:
    print "***FAILURE: simplejson missing***"
    sys.exit( 2 )
sys.exit( 0 )

只需在每个环境中运行此脚本作为安装的一部分。这根本不是单元测试。这是安装安装的前提条件。

【讨论】:

  • 非常感谢,也很抱歉使用了错误的术语,这显然让一大群人走错了路 :)
【解决方案2】:

我不明白您为什么需要对此进行测试,但类似于:

def my_import_test(self):
    import my_module

如果出现导入​​错误,则测试失败,否则通过。

【讨论】:

  • 也许我不清楚我需要什么。我想测试一个模块的导入是否成功,这样我就可以看到哪些模块缺少并且需要安装。那么如何使用 self.assertUnequals... 语句
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-16
  • 1970-01-01
  • 2012-08-08
  • 1970-01-01
  • 1970-01-01
  • 2019-06-21
相关资源
最近更新 更多