接口测试 使用 Jenkins 运行接口,返回报错:找不到文件,朋友们快来帮忙看看~

pan · 2019年04月22日 · 最后由 陈子昂 回复于 2019年04月23日 · 1833 次阅读

问题:

我用 docker 搭建了 Jenkins,在里面配置了一个 Python 的接口测试,进行构建时,返回报错:找不到运行文件

出现步骤:

docker run --rm --name pytest_1 -v ${WORKSPACE}:/app -w /app my python -m pytest test.py

构建结束后报错如下:

自我排查:

1.通过 docker 命令查询容器空间,发现容器内并没有相关的代码文件
2.根据 Jenkins 日志,查找本地 workspace 路径,发现本地 workspace 目录如下

3.使用 docker exec 命令进入 docker 容器,在相应的 workspace 目录发现代码文件

根据自己排查,初步确定问题是:代码是储存在 docker 容器内,而 Jenkins 在构建时跑 docker run 命令时调用的是本地目录,不是 Jenkins 容器目录从而导致报错

各位大佬们帮忙看看,提下解决思路,或者方案,谢谢!

共收到 4 条回复 时间 点赞

docker run --rm --name pytest_1 -v ${WORKSPACE}:/app -w /app my bin/bash -c ‘python -m pytest test.py’ 这样呢

pan #2 · 2019年04月22日 Author
黑山老妖 回复

这样可以构建成功,不过貌似没运行测试,我看了下对应路径没有生成测试报告

pan 回复

排除了是否是容器环境引起的?比如进入容器里执行 python -m pytest test.py 运行成功,那么 jenkins 执行后进入容器内查看没生成报告,才可以判断是 jenkins 环境及构建命令的原因

pytest 对于执行 case 文件的上层文件夹名字需要包含test和 test.py 里面的类 Test 要大写 有一些讲究。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册