1.运行环境:
操作系统:macOS Monterey
Python版本:Python 3.10.8
Allure 版本:2.19.0
Pycharm:2021.1.3
2.问题现象:
使用pytest+allure生成报告时,遇到以下问题:
在主程序all.py和Python Console执行os.system("allure generate ./temp -o ./report --clean")
时都报错sh: allure: command not found(图1)
但在Terminal里执行allure generate ./temp -o ./report --clean,就不报错(图2)。
如下图所示:
图(1)
图(2)
3.解决办法
网上也看到好多博主分享的办法,有让改mac系统登陆shell的(我的默认是/bin/zsh),有让改系统的环境变量的,或许可以解决你们的问题,但这些方法都没能解决我的问题。不过也从前辈们的分享中学到了不少知识,比如mac系统环境配置;os.system和open.system的区别等等,大家有兴趣可以研究下。
先说问题原因:terminal能执行,python console 和 主程序执行报错,是因为pycharm的环境变量配置的不对。terminal实际使用的是电脑本身的环境变量,python console和主程序都是用的python解释器的变量。
具体配置步骤如下:
(1)先解决python console控制台执行allure的报错,如下图顺序操作
如下图所示,mac是Preferences,windows是Settings
编辑环境变量
mac查看allure的安装路径命令:which allure
如下图所示,查看一下刚添加的路径,确认后,先点击Apply,再点击OK,
重启pycharm,然后在Python Console里再次执行os.system("allure generate ./temp -o ./report --clean”),执行成功!
此时运行all.py,仍然报错
(2)再解决all.py文件运行报错的问题
如下图所示,编辑主程序(我的是all.py,你们根据自己实际的主程序文件找就行)的Configurations,
如下图所示,编辑环境变量
此时再次运行all.py,执行成功!
希望上述方法能帮助到你解决问题~
不要放弃啊,一定要多找找原因。