Win下打包playwright+allure+pytest项目为一个exe
我的项目结构,runner.py是启动类,test_web.py是做业务处理,testcase.yaml编写测试用例

打包方式:不推荐pyinstaller,虽然pyinstaller命令简单,但是他只打包py结尾的文件,像上图中的testcase.yaml需要使用--add-data或者手动拷贝的方式也比较麻烦;最重要的是使用pyinstaller打包会大概率漏掉依赖,因为pyinstaller打包时是根据项目中importXX就打包XX。
推荐使用工具打包,本工具是打包整个环境,工具原开发者B站白月黑羽师傅
工具地址:白月黑羽 具体使用方式详见视频
重点来了:上述工具虽然好用,但只是打包项目内环境,当我们生成一个playwright项目的exe文件运行时,会提示'exist does't chrome',提示需要pyinstaller install安装浏览器,切默认安装在C盘,如果要完整打包(项目与浏览器)成为一个exe直接在一台什么环境都没有的机器上运行可按下述步骤。
1.在Pycharm的Terminal中使用XCOPY "你本地pyinstaller install安装浏览器的路径" "项目路径";就是把playwright自己下载的浏览器复制到你项目内,根据playwright的官方文档给出的命令,可以修改playwright浏览器路径为项目内的路径,具体可以这么写
playwright_browsers_path = os.path.join(current_dir, "playwright_browsers") os.environ["PLAYWRIGHT_BROWSERS_PATH"] = playwright_browsers_path

2.allure同理,也需要使用XCOPY复制到你项目内,os.environ可以临时设置环境变量,但是当我们进程退出时刚设置的环境变量就失效了,所以在生成report后需要先手动设置环境变量,如下图
![]()
这里环境变量就是你复制到项目内allure的bin目录
然后在执行allure generate ./report -o ./allure-report --clean生成测试报告
最后打开测试报告 allure open

至此,可以把一个playwright+allure+pytest项目打包成一个exe直接在没有任何环境的电脑中运行了
更多推荐


所有评论(0)