我正在尝试用Python完成behave测试。
一个简单的行为测试本身没有问题。但是,当我尝试使用已经创建的,位于并行目录中的程序包中的模块时,我就很努力。
目录结构类似于:
src
├── connection
│ │
│ └── api_connector.py
│
├── behave_tests
│ │
│ ├─ steps
│ │ │
│ │ └ testCommands.py
│ │
│ ├── testConnection.feature
│ └── testCommands.feature
│
└── unit_tests
通常,行为是从 behave_tests 目录内部启动的。首先,它运行良好。行为测试的所有Python代码都在文件 testCommands.py 中,仅使用了python内核中的软件包。
但是后来我更改了 testCommands.py 以使用我自己的软件包 connection 中的代码,该代码已经过测试并且可以正常工作。
在 testCommands.py 中,我输入了输入行
from connection.api_connector import ApiConnector, SerialApiConnector
但是此输入行不能由行为解决,它输出:
ModuleNotFoundError: No module named 'connection'
我尝试通过将以下行添加到 test_commands.py
的顶部,将软件包 connection 附加到python模块路径中import sys
sys.path.append('/home/username/projects/projectname/src/connection/')
但这没有帮助。
如何告诉行为使用我的连接软件包?
答案 0 :(得分:0)
进一步阅读后,我找到了解决方法。
__init__.py
文件添加到两个目录: src 和 connection 。例如在Linux Shell中,我通过键入
来设置PYTHONPATHexport PYTHONPATH=/home/{username}/test_project/src
然后python解释器,并且表现,只要它们从此shell中启动,就可以找到并解决相关模块。