问题描述
本地运行正常,集成到Jenkins后使用执行 Windows 批处理命令运行测试用例时报错:
D:\PycharmProject\ZeppAndroid>pytest -vs testcase\test_login.py --alluredir=report/allure_json --clean-alluredir
ImportError while loading conftest 'D:\PycharmProject\ZeppAndroid\testcase\conftest.py'.
testcase\conftest.py:2: in <module>from po.prepare import *
E ModuleNotFoundError: No module named 'po'
解决办法
经排查确认模块导入的方式是正确的,conftest.py却没有成功地引入这个模块,这里就涉及到执行路径的关系,testcase目录在项目根目录下,是pytest的覆盖范围,我们只需要改变conftest.py的执行路径就可以了,在conftest.py模块中添加以下代码
import sys, ossys.path.append((os.path.abspath(os.path.join(os.path.dirname(__file__), '../'))))