You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JDK从11升级至17后TestNG测试框架意外退出,报UnknownHostException错误

JDK从11升级至17后TestNG测试框架意外退出,报UnknownHostException错误

嘿,我之前帮同事排查过几乎一模一样的问题,这个报错其实是老版本TestNG和JDK17的兼容性冲突搞出来的!

先给你拆解下根源:你用的TestNG 6.14.3版本有点老了,它在解析测试套件的时候,会默认尝试访问testng.org这个域名做后台校验操作。但JDK17对Java的网络权限管控比JDK11严格了不少,默认限制了这类未授权的出站网络请求,再加上这个版本的TestNG本身就没适配JDK17,直接就抛出了UnknownHostException异常,导致测试框架直接崩了。

下面给你几个实用的解决办法,你可以按需尝试:

  • 优先推荐:升级TestNG版本
    这是最彻底的解决方案,建议你把TestNG升级到7.5及以上的稳定版本,这些版本已经完全适配JDK17,还移除了那个没必要的后台网络请求。你只需要在项目的依赖配置文件(比如Maven的pom.xml或者Gradle的build.gradle)里把TestNG的版本号改成7.8.0这类兼容版本,重新同步依赖后再跑测试,大概率就能解决问题。

  • 临时方案:添加JVM权限参数
    如果暂时没法升级TestNG,你可以给测试的JVM启动参数加个网络权限配置,允许TestNG进行网络访问。具体操作是在你的测试运行配置里,加上这条JVM参数:

    --add-opens java.base/java.net=ALL-UNNAMED
    

    另外也可以快速检查下你的网络环境,比如有没有代理、防火墙意外挡了对testng.org的访问,但这个可能性不大,毕竟之前JDK11下是正常跑的。

  • 排查配置文件:避免远程资源引用
    你可以打开项目里的testng.xml配置文件,看看有没有引用远程的测试套件或者资源地址,如果有的话,改成本地的配置路径,这样也能规避不必要的网络请求。

备注:内容来源于stack exchange,提问作者Kushani Karunarathne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 17:18:07