java.lang.ClassCastException 尝试在 TestNG xml 文件中导入文档实体时使用 TestNG 版本 7.3.0

java.lang.ClassCastException when trying to import document entities in a TestNG xml file with TestNG version 7.3.0

尝试使用文档实体从另一个 xml 文件导入参数时出现错误。 TestNG 6.9.11 按预期工作,7.3.0 和 7.4.0-SNAPSHOT 崩溃并出现以下堆栈跟踪:

org.testng.TestNGException: java.lang.ClassCastException: class sun.net.www.protocol.file.FileURLConnection cannot be cast to class java.net.HttpURLConnection (sun.net.www.protocol.file.FileURLConnection and java.net.HttpURLConnection are in module java.base of loader 'bootstrap')
    at org.testng.TestNG.parseSuite(TestNG.java:354)
    at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:374)
    at org.testng.TestNG.initializeEverything(TestNG.java:1017)
    [..]
Caused by: java.lang.ClassCastException: class sun.net.www.protocol.file.FileURLConnection cannot be cast to class java.net.HttpURLConnection (sun.net.www.protocol.file.FileURLConnection and java.net.HttpURLConnection are in module java.base of loader 'bootstrap')
    at org.testng.xml.TestNGContentHandler.lambda$new[=12=](TestNGContentHandler.java:62)
    at org.testng.xml.TestNGContentHandler.resolveEntity(TestNGContentHandler.java:117)
    at java.xml/com.sun.org.apache.xerces.internal.util.EntityResolverWrapper.resolveEntity(EntityResolverWrapper.java:111)
    at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.resolveEntityAsPerStax(XMLEntityManager.java:1025)
    at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1306)
    at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEntityReference(XMLDocumentFragmentScannerImpl.java:1858)
    [..]

主要 TestNG xml 文件:

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" [
    <!ENTITY parent SYSTEM "xml/test/parameters.xml">
]>
      
<suite name="VerifyTests" parallel="tests" thread-count="10" preserve-order="true">
    
    &parent;
        
    <test name="TestName1">     
        <classes>
            <class name="tests.testcode.VerifyTests" />             
        </classes>
    </test>
</suite> 

辅助 xml 文件:

<parameter name="browser" value="chrome" />

class 包含一个带日志消息的@Test 方法,我在 Eclipse 和来自 shell 的 运行 TestNg 中有同样的错误。我会说这是由

行引起的 TestNG 错误
 HttpURLConnection conn = (HttpURLConnection) url.openConnection();

in m_redirectionAwareResolver 来自 TestNGContentHandler,但我发现很难相信以前没有其他人遇到过这个问题,我的搜索没有任何结果,所以也许这是我的问题。有什么想法吗?

将在 TestNG 7.5.0 中修复:https://github.com/cbeust/testng/issues/2501