我有一个Python模块,它尝试导入一个模块,如果失败,adds会设置一个轻量级类来复制一些功能作为后备。在
我如何编写一个涵盖这两种情况的单元测试—模块存在时和模块不存在时?在
try:
from foo import bar
except ImportError:
class bar(object):
def doAThing(self):
return "blah"
例如,如果存在bar,单元测试将报告只覆盖第二行,而模块的其余部分则没有覆盖。Python的覆盖率将报告在末尾带有“except”的行上缺少的测试。在
Tags:
模块从
sys.path
数组加载。如果清除该数组,则任何非核心导入都将失败。以下命令在ipython中的虚拟env中运行,可以访问django另一种选择是使用两个虚拟环境。一个有模块,一个没有。不过,这会使运行测试稍微困难一些。
如果这不起作用,那么您可以添加一个路径到
sys.path
的开头,它有一个模块,在加载时将生成一个ImportError
。这是因为在搜索sys.path
时找到的第一个匹配项已加载,因此这可以替换实际的模块。以下就足够了:测试.py
^{pr2}$foo/\uu init\uy.py
相关问题 更多 >
编程相关推荐