pytest+allure生成位于两个不同路径下的测试用例的报告
假设目前有结构如下的一个项目,现在需要将test_caseA.py的用例和test_caseB.py的用例通过allure生成在Report文件夹中
python_project
-- TestA
-- test_caseA.py
-- scriptA.py
-- TestB
-- test_caseB.py
-- Report
可行的解决方法是通过脚本先后进入TestA和TestB目录执行pytest命令,并且将alluredir指向上级目录的Report文件夹
假设当前的路径位于python_project下,Windows命令可写为:
cd TestA
# 首次执行可添加--clean-alluredir指令来删除上一次保存下来的文件
pytest -s -q --clean-alluredir --alluredir=/python_project/Report
cd ..
cd TestB
pytest -s -q --alluredir=/python_project/Report
这些命令可直接写在Jenkins项目内的构建-Execute Windows batch command的命令行中
如果在一个目录下的模块中调用了该目录下的其他模块的函数或变量,
比如在test_caseA.py中有类似
from TestA.scriptA import func1
这样的代码,执行pytest命令则会报出 No module named TestA的错误。
造成该错误的原因是当前的目录并非一个python路径,只需要在目录下添加__init__.py即可
详情可参考以下链接
https://stackoverflow.com/questions/20985157/py-test-no-module-named
修改后的项目结构如下:
python_project
-- TestA
-- __init__.py
-- test_caseA.py
-- scriptA.py
-- TestB
-- __init__.py
-- test_caseB.py
-- Report
这样allure中就会出现位于两个不同目录下的用例报告了