IntelliJ降级至2020后TestNG报禁止加载非安全URL的DTD错误如何解决
排查解决步骤
- 清理旧的TestNG运行配置
IDEA修改运行模板后,已经生成的历史运行配置不会自动同步新参数。打开顶部菜单栏「运行」-「编辑配置」,找到所有TestNG类型的运行配置全部删除,之后右键testng.xml重新运行,会自动生成新的配置,加载模板里的JVM参数。 - 升级项目TestNG依赖版本
IDEA 2020版本内置的TestNG插件存在已知识别问题,即便你写的是HTTPS的DTD地址,插件仍会强制转为HTTP地址请求。如果是Maven管理的项目,在pom.xml中将TestNG依赖升级到7.4及以上版本;如果是Gradle项目,对应修改build.gradle中的依赖版本即可。 - 替换为本地DTD文件(彻底避免网络请求问题)
如果上述步骤都无效,可以直接离线使用DTD:
- 下载testng-1.0.dtd文件放到项目src/main/resources目录下
- 将testng.xml的DOCTYPE声明修改为:
<!DOCTYPE suite SYSTEM "./testng-1.0.dtd">
完全跳过网络请求,不会再触发HTTP加载DTD的校验报错。
- 检查全局JVM参数配置
如果是父子工程或者多模块项目,需要确认JVM参数-Dtestng.dtd.http=true不仅加在TestNG运行模板里,也可以加到IDEA的全局构建参数中:打开「设置」-「构建、执行、部署」-「构建工具」-「Maven/ Gradle」-「运行程序」,在VM选项里添加该参数。
内容的提问来源于stack exchange,提问作者itadaki33
相关产品推荐
相关产品推荐

