引入allure-testng依赖后TestNG测试运行报错,pom配置是否存在问题?
问题根因
io.qameta.allure:allure-testng:2.12.1仅适配TestNG 6.x版本,TestNG从7.0版本开始正式移除了org.testng.IInvokedMethodListener2接口,高版本TestNG运行时找不到对应类触发报错。- 你项目中指定的TestNG 7.4.0版本优先级高于allure-testng传递引入的低版本TestNG,运行时加载高版本TestNG后缺少旧接口,所以仅在保留allure-testng依赖时才会出现异常。
可用解决方案
- 方案1:升级allure-testng到兼容TestNG 7.x的版本,建议使用
io.qameta.allure:allure-testng:2.22.0及以上版本,该系列版本已经适配TestNG 7.x的新接口,可直接解决类找不到的问题。 - 方案2:如果必须保留
allure-testng:2.12.1版本,将TestNG版本降级到6.14.3版本,该版本是TestNG 6.x的稳定终版,和allure-testng 2.12.1完全兼容。 - 方案3:若需排查依赖冲突,可以在pom的allure-testng依赖声明中排除传递引入的TestNG依赖,不过该方法无法解决跨大版本的接口不兼容问题,当前场景不推荐使用。
内容的提问来源于stack exchange,提问作者paul
相关产品推荐
相关产品推荐

