我的代码结构如下:
<root>
+-- src
| +- module1.py
| |
| +- module2.py
| |
| + __init__.py
|
+-- test
+- test1
| +- test1.py
| |
| + __init__.py
|
+- test2.py
|
+- __init__.py
字符串test/__init__.py
包含以下内容:
import sys
sys.path.append(".")
型test/test1/__init__.py
包含:
import sys
sys.path.append("..")
型test1.py
和test2.py
都包含from src import module1, module2
当我运行pytest test1
时,它工作正常,但当我只运行pytest
时,test 2的import语句失败,因为它无法解析src
我试过修改test/__init__.py
,在sys.path后面加上“..”,但没有用。
另外,我已经尝试了import语句作为from ..src import module1, module2
-它也不工作。
在这种情况下,如何解决系统路径?
1条答案
按热度按时间lqfhib0f1#
我的经验告诉我不要在测试中修复
sys.path
:不应该关心这个。最好在这些测试之外控制sys.path
。这里有一种方法。我将保持相同的文件结构,然后1.删除测试目录中的所有
__init__.py
文件字符串
1.发出
pytest
命令:型
这样,你的文件结构就简单多了,测试并不关心模块在哪里,他们只是导入它们。
另一种方法是安装python-path插件,该插件为测试管理PYTHONPATH。