环境:python3.5.0+selenium2.48+HTMLTestReport
描述:
想在 jenkins 上自动跑脚本并生成测试报告,但在本地 CMD 命令行都运行不了 run_* 脚本文件,用例脚本也运行不了,报错!想请教一下大家!今天是正好是端午节,
╭︿︿︿╮
{/ o o /}
( (oo) )
︶ ︶
祝大家节日快乐!!!!
test_dir 修改下 用相对路径 或绝对路径
把项目路径加入到PYTHONPATH
用 pycharm 开发一定要有项目的概念,别像写脚本一样那么随意,pycharm 都是在项目根目录下执行,并且会把执行脚本目录加入 PYTHONPATH,用命令行在其他目录执行找不到文件或者模块很正常
在环境变量有一个这个变量PYTHONPATH
,把你的项目路径添加到里面去,然后在 python 命令行看看,是不是添加成功了
λ python
Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:19:30) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
看一下你的路径是不是在这,然后通过命令行执行下你的代码
cd 你的脚本路径
python 你的脚本.py
再试试
那就是没加载到用例吧,你脚本里面是不是有相对路径没处理好,然后导致没加载到。
如果要用相对路径可以这样testdir="./xxx"
,或者先改成绝对路径试试?
都还不行,那你在你执行的那个脚本那添加两行代码,我在我本地试过了,应该没问题
import sys
sys.path.append(os.path.normpath("你的项目路径"))
然后删掉文件夹下的.pyc
文件,重新执行下试试
python 跟 jenkins 集成后运行 py 文件时要处理一下项目中所有引用的路径,比如测试报告的输出,log 文件的定义,testcase 目录的定义,建议使用 os.getcwd() 获取 run.py 的路径,然后一级一级写下去。因为 run.py 都是放在项目根目录的。
使用 jenkins 运行 run.py 文件时项目是放在 jenkins 的 workpace 空间中的。可以在构建的时候加一行命令,进入 **/jenkins/workspace/项目名称 目录中去运行根目录下的 run.py 文件。
回头看了下之前写的不是很明白,刚研究了下,发现使用
print(os.path.abspath(os.path.join(os.path.dirname(__file__))))
即可,详细的结果在 https://testerhome.com/topics/11589,题主没解决的话可以看下,互相学习
第一点 d 能拿到吗。。test_dir 迁移位置后路径是否正确
第二点 jenkins 机器上是什么系统环境,二边是否用到命令行了。
ps:为啥 f.close 你不是用了 with 吗
已经解决!感谢各位的不吝指教!1、test_case 和 report 路径改为绝对路径或者 CMD 里切到项目根目录执行;2、PYTHONPATH 环境变量只添加了项目根目录 D:\Python Script\mis,而没有把 mis 下的一级(test_case)和二级目录(test_case\model 等)添加进去,因为运行 run*.py 有关联到一、二级目录下的自定义模块!