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

TestNG的testng.xml文件DOCTYPE声明引发格式错误如何修复?

修复TestNG XML中DOCTYPE声明导致的“文档类型声明包含或指向的标记声明必须格式良好”错误

这个报错的核心原因是XML解析器无法正常加载或验证指定的TestNG DTD文件,常见情况包括远程DTD地址无法访问、本地环境无法解析外部资源,或者DTD文件本身加载异常。以下是几种可行的修复方案:

方案一:使用本地DTD文件(推荐)

  1. 从项目依赖的TestNG包(testng.jar)中提取根目录下的testng-1.0.dtd文件。
  2. 将该文件放到项目的资源目录中,比如src/test/resources。
  3. 修改testng.xml中的DOCTYPE声明,指向本地资源:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "classpath:testng-1.0.dtd">
<suite name="Suite">
  <test name="Test">
   <classes>
      <class name="upskill.runners.RunnerClass"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->

方案二:移除DOCTYPE声明(临时快速修复)

直接删除<DOCTYPE>行即可消除报错,因为TestNG在没有DTD声明时会采用内部默认规则解析XML,无需强制校验文档结构。但这种方式会失去XML结构的合法性校验能力,适合临时应急场景。

方案三:调整远程DTD地址(若需保留远程引用)

如果必须使用远程DTD,可尝试以下操作:

  • 确认本地网络能正常访问TestNG的DTD地址,排除代理、防火墙拦截问题。
  • 将HTTP地址替换为HTTPS版本,部分环境下HTTPS连接更稳定:
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">

内容的提问来源于stack exchange,提问作者Mohammad Bhuiyan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 15:10:27