如何修复pytest运行时出现ValueError: option names {'--alluredir'} already added报错
问题根因
该报错本质是pytest启动时重复加载了allure相关插件,导致--alluredir参数被两次注册,和你另一个独立目录的项目无关联,问题出在当前项目的虚拟环境或pytest插件配置层面,你提供的业务代码、测试用例、pytest.ini配置本身没有问题,不需要修改。
解决方案
按以下顺序排查即可:
- 第一步:检查是否同时安装了新旧两个allure pytest插件
旧版插件pytest-allure-adaptor和当前你用的allure-pytest互相冲突,是该报错的最高发原因,执行命令卸载旧版即可:pip uninstall pytest-allure-adaptor -y - 第二步:排查当前项目的插件加载配置
检查项目根目录下的conftest.py文件,看是否存在手动加载allure插件的代码,比如pytest_plugins = ["allure_pytest.plugin"]这类配置,直接删除该行即可。 - 第三步:排查全局pytest配置冲突
检查你当前系统用户目录下的全局pytest配置(Windows下是C:\Users\你的用户名\pytest.ini,Mac/Linux下是~/.config/pytest/pytest.ini),如果全局配置里也启用了allure-pytest插件,和当前项目的配置重复就会触发冲突,删除全局配置里的allure相关配置即可。 - 第四步:清除pytest缓存重试
以上操作都完成后,执行以下命令清除pytest缓存后再运行测试即可:pytest --cache-clear
内容的提问来源于stack exchange,提问作者Keith
相关产品推荐
相关产品推荐

