Pycharm中运行Allure报错不是内部或外部命令的解决方案

问题现象:

Allure已安装并配置好系统环境变量:
1、Allure的下载地址:https://github.com/allure-framework/allure2/releases
2、下载后解压,将解压后的bin路径配置到环境变量中:

在这里插入图片描述
allure-pytest插件也已安装好:

pip install allure-pytest

cmd进入命令行,运行allure --version,出现版本号,说明allure服务已经安装配置完毕。

但在pycharm里面不管用,pycharm中Terminal窗口输入allure --version报错:‘allure’ 不是内部或外部命令,也不是可运行的程序或批处理文件:

在这里插入图片描述

解决方案:
查阅资料后发现原因居然是因为我在打开pycharm时没有用管理员身份打开,无语ing…
将软件关闭,重新使用管理员身份打开Pycharm后**,再次在pycharm中Terminal窗口输入allure --version,正确显示allure版本号。

=================================================================================================
以上就是本次的全部内容,如果对你有帮助,麻烦点个赞+收藏+关注,一键三连啦~

欢迎关注下方我的公众号:程序员杨叔,各类文章、框架Demo源码都会在上面发布,持续分享各类测试开发知识干货,你的支持就是作者更新最大的动力。

# @Time: 2025/7/4 17:01 # @Author: pp # @File: excute.py # @Project: Ai import os import shutil import jsonpath import openpyxl import pytest import requests # def excute(case_info: dict): # 执行器 [只负责实现访问接口,接受应答的逻辑] # response=requests.request(url=case_info["接口URL"], # method=case_info["请求方式"], # params=case_info["URL参数"], # data=case_info["JSON参数"] # ) # # # # # 控制执行器访问不同的接口 -- 参数不同 访问不同的接口 # dic={"接口URL":"http://shop-xo.hctestedu.com/index.php?s=api/user/login", # "请求方式":"post", # "URL参数":{"application":"app","application_client_type":"weixin"}, # "JSON参数":{"accounts":"huace_xm","pwd":"123456","type":"username"}} # # # excute(dic) # wb =openpyxl.load_workbook(r"D:\pythonProject\Ai\测试用例01.xlsx") # sheet = wb["Sheet1"] # # sheet = wb.active # 获取当前活动表 # for row in sheet.iter_rows(values_only=True): # print(row) import pandas as pd from string import Template from xToolkit import xfile datas=pd.read_excel(r"D:\pythonProject\Ai\测试用例01.xlsx", sheet_name="Sheet1").to_dict('records') # datas=xfile.read(r"D:\pythonProject\Ai\测试用例02.xls").excel_to_dict(sheet=1) print(datas) # 读取结果是list格式 dic={} #定义一个空字典,用于存储变量 @pytest.mark.parametrize("case_info",datas) # 循环执行被装饰的函数,循环次数由传入的列表元素个数决定 def test_excute(case_info: dict): url=case_info["接口URL"] if '$' in url: url=Template(url).substitute(dic) response = requests.request(url=url, method=case_info["请求方式"], params=eval(case_info["URL参数"]), data=eval(case_info["JSON参数"])) print(response.json()) assert response.status_code == case_info["预期状态码"] # for case_info in datas: # excute(case_info) if case_info["提取参数"]: # 语法规则 如果case_info["提取参数"]是空的,那么就是false 如果有值,就是true extract_param = str(case_info["提取参数"]) # 强制转为字符串 lk = jsonpath.jsonpath(response.json(), "$.." + extract_param) # jsonpath.jsonpath结果通常是 list 格式 if lk: dic[extract_param] = lk[0] # 字典的存值 # allure -- 纯命令工具 核心流程 -- 通过命令生成报告 -- 报告展示出来 # 用了@pytest装饰器,就要用对应的方式去执行函数 if __name__=='__main__': pytest.main(["-s","-v", "--capture=sys" , # 捕获输出 "test_excute.py" , # 指定要执行的文件, "--clean-alluredir", # 清理掉上次执行的数据 "--alluredir=./allure-result" # 本次测试结果文件 ]) # os执行系统命令 windows下等同于cmd命令控制台 os.system("allure generate ./allure-result -o ./allure-report --clean") 未生成报告是什么原因,已经安装了allure和配置环境变量
最新发布
07-08
C:\Users\安娜\AppData\Local\Programs\Python\Python311\python.exe "C:/Users/安娜/Desktop/anna/pycharm/PyCharm Community Edition 2024.1/plugins/python-ce/helpers/pycharm/_jb_unittest_runner.py" --path C:\Users\安娜\PycharmProjects\seleniumproject11\SeleniumProject\testcases\web\test_login.py Testing started at 下午10:09 ... Launching unittests with arguments python -m unittest C:\Users\安娜\PycharmProjects\seleniumproject11\SeleniumProject\testcases\web\test_login.py in C:\Users\安娜\PycharmProjects\seleniumproject11\SeleniumProject\testcases\web Traceback (most recent call last): File "C:\Users\安娜\Desktop\anna\pycharm\PyCharm Community Edition 2024.1\plugins\python-ce\helpers\pycharm\_jb_unittest_runner.py", line 38, in <module> sys.exit(main(argv=args, module=None, testRunner=unittestpy.TeamcityTestRunner, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\安娜\AppData\Local\Programs\Python\Python311\Lib\unittest\main.py", line 101, in __init__ self.parseArgs(argv) File "C:\Users\安娜\AppData\Local\Programs\Python\Python311\Lib\unittest\main.py", line 150, in parseArgs self.createTests() File "C:\Users\安娜\AppData\Local\Programs\Python\Python311\Lib\unittest\main.py", line 161, in createTests self.test = self.testLoader.loadTestsFromNames(self.testNames, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\安娜\AppData\Local\Programs\Python\Python311\Lib\unittest\loader.py", line 232, in loadTestsFromNames suites = [self.loadTestsFromName(name, module) for name in names] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\安娜\AppData\Local\Programs\Python\Python311\Lib\unittest\loader.py", line 232, in <listcomp> suites = [self.loadTestsFromName(name, module) for name in names] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\安娜\AppData\Local\Programs\Python\Python311\Lib\unittest\loader.py", line 162, in loadTestsFromName module = __import__(module_name) ^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\安娜\PycharmProjects\seleniumproject11\SeleniumProject\testcases\web\test_login.py", line 8, in <module> import allure File "C:\Users\安娜\AppData\Local\Programs\Python\Python311\Lib\site-packages\allure\__init__.py", line 1, in <module> from allure.pytest_plugin import MASTER_HELPER File "C:\Users\安娜\AppData\Local\Programs\Python\Python311\Lib\site-packages\allure\pytest_plugin.py", line 9, in <module> from allure.common import AllureImpl, StepContext File "C:\Users\安娜\AppData\Local\Programs\Python\Python311\Lib\site-packages\allure\common.py", line 19, in <module> from allure.structure import Attach, TestStep, TestCase, TestSuite, Failure, Environment, EnvParameter File "C:\Users\安娜\AppData\Local\Programs\Python\Python311\Lib\site-packages\allure\structure.py", line 14, in <module> class Attach(xmlfied('attachment', ^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\安娜\AppData\Local\Programs\Python\Python311\Lib\site-packages\allure\rules.py", line 116, in xmlfied class MyImpl(namedlist('XMLFied', [(item[0], None) for item in items])): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\安娜\AppData\Local\Programs\Python\Python311\Lib\site-packages\namedlist.py", line 398, in namedlist fields, defaults = _fields_and_defaults(typename, field_names, default, rename) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\安娜\AppData\Local\Programs\Python\Python311\Lib\site-packages\namedlist.py", line 252, in _fields_and_defaults if isinstance(field_names, _collections.Mapping): ^^^^^^^^^^^^^^^^^^^^ AttributeError: module 'collections' has no attribute 'Mapping' 进程已结束,退出代码为 1 空套件
03-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值