使用命名空间包进行测试

时间:2014-10-21 10:07:33

标签: python nosetests

我在同一名称空间中有两个包含测试,结构如下:

Package-1/namespace/__init__.py
Package-1/namespace/module1/__init__.py
Package-2/namespace/__init__.py
Package-2/namespace/module2/__init__.py
Package-2/tests/foo_test.py

使用pip正确安装了包1。现在Package 2依赖于Package 1,因此foo_test包含行

import namespace.module1

当我尝试从目录nosetests ./tests/foo_test.py运行Package-2时,我收到导入错误,因为Python抱怨它找不到namespace.module1。我很确定问题是它试图在路径Package-2/namespace中搜索当前不存在的目录module1。我希望Python从已安装的软件包中加载module1,而不是在当前路径中搜索它。

我不完全确定,但我认为here解释了类似的问题,但根据我的理解,这应该已经解决。有没有人知道如何解决这个问题?或者我应该以不同的方式构建事物?

1 个答案:

答案 0 :(得分:0)

至少在Python 3.3+中有一个解决方案。必须删除__init__.py中存在的Package-i/namespace/个文件。我不明白为什么解决这个问题,但它适用于我的情况......