我有一个包,我希望能够从另一个包或不在同一目录中的测试模块进行测试。例如,我有一个以下结构的目录......
Project/
|-- bin/
| |-- project
|-- project/
| |-- subpackage1/
| | |-- __init__.py
| | |-- foo1.py
| | |-- foo2.py
| |-- subpackage2/
| | |-- __init__.py
| | |-- bar1.py
| | |-- bar2.py
| |-- __init__.py
| |-- main.py
|-- test/
| |-- __init__.py
| |-- test_main.py
| |-- test_subpackage1/
| | |-- __init__.py
| | |-- test_foo1.py
| | |-- test_foo2.py
| |-- test_subpackage2/
| | |-- __init__.py
| | |-- test_bar1.py
| | |-- test_bar2.py
|-- setup.py
|-- README
我的test/test_main.py
想要使用project.subpackage1.bar1
类来测试项目代码。但是,当我执行import project.subpackage1.bar1
时,我收到错误消息
Traceback (most recent call last):
File "/home/Project/test/test_main.py", line 1, in <module> import project.subpackage1.bar1
ImportError: No module named project.subpackage1.bar1
我听说你可以添加
import sys
sys.path.append("../")
但即便如此,我也会得到同样的错误。有没有办法在项目包的目录之外使用测试包?除此之外,这是进行集成测试的正确方法吗?