赞
踩
前言:
1.当我们环境都打包好,可以直接把exe放在任何电脑上都可以运行,
· 2.但是往往都会存在理想和现实差别,为了实现使用使用pytest框架进行自动化测试,踩了很多的坑
3.其中就遇到了很多的路径问题,找不到文件xxxxx
1.先看我打包前的py执行器
代码中cur_path是获取当前文件的路径和py文件名称
cur_path打印出来是 D:\xxx\xxx\xxx\xxx.py(项目所在路径)
2.运行的时候发现一直都找不到路径,通过cur_path查看已经返回了完整路径C:\xxx\xxx.py,但也不行
(cur_path打包前是你的项目所在的路径(D:\\xxx\xxx.py),打包后是应用程序的路径(C:\\xxx\\xxx.py),所以pycharm中的路径和打包后的路径是不一样的)
3.将打印出来的C盘路径复制出来,找到C盘里_MEI169642下面去找test_xxx.py,发现打包后的程序文件是这样的
一般存放应用路径都是C:\Users\MrShiRong\AppData\Local\Temp(注意Users后是你的用户名称,需要替换)
4.查看文件里面根本不存在xxx.py的,所以通过pytest.main('-sv','test_xxx.py')也就找不到执行文件
5.这个时候我们就不能用pytest.main()的方式去执行,必须要通过函数间的调用方法,依次调用
6.重新打包后发送给其他人,已经可以正常运行
7.其实也可以用unittest框架放到测试集里面,就不用一个个调用,测试集也需要将test开头的测试用例加入到执行器里面,所以大差不差
关于找不到txt等文件路径查看pyinstaller打包不能读取txt或者资源文件_一只菜鸟HA的博客-CSDN博客
扩展
打包命令用 pyinstaller -D xxx.py也是可以生成执行文件夹,应用程序(路径就是当前文件路径下面dict里面)
这个文件夹里面没有xxxx.py,执行会报找不到xxx.py
但是可以将你的py测试用例文件直接放入当前的文件夹下面
那么运行的时候程序就能找到这个py文件
两种方法都可以使用,第一种别人看不到源码,只用一个exe即可,第二种方式必须把需要运行的源码py文件放到目录里面
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。