这几天把坑了的那个web自动化工具,改成了APP自动化的工具,然后采用pyinstaller打包,其中遇到了点关于打包的心得,分享给大家.
首先是关于打包uiautomator2的时候,遇到的humanize的问题,这个已经在我上一篇博客里讲过了,就不再重复了.
这篇主要讲我另外一个问题.
我的自动化框架,脚本是储存在excel里的,本身也是通过excel编写得来的,如下:
在程序刚启动的时候,会获取testcases文件夹内所有的excel文件名,组成一个list,然后把list[0]的excel内的所有sheet读取展示出来.这里我是用的
os.path.dirname(os.path.split(os.path.realpath(__file__))[0])
来获取的路径地址.
本来这样是没什么问题的.但是,我打包的时候,testcases文件夹里还是有东西的,这就带来了麻烦.
pyinstaller打包的时候会将一些文件复制到系统的temp文件夹下去打包,然后他们会在temp文件夹下去寻找testcases文件和excel文件,当然是找不到的,导致打包一直失败.
后来想明白了,开始用绝对路径直接写死具体路径,但是这样分享出去,别人不好用.因为人家不可能把脚本放到你指定的位置.
最后反应过来,我没就文件夹为空做处理,因为在我理解里,文件夹内一定会存在一个模板的excel的. 直接做了为空处理,找不到的excel的话,就显示没有excel,果然打包成功了.
我没用过其他诸如安卓,ios的打包,但是我觉得,他们写程序的时候,是否也要注意这种引用外部文件的情况呢?