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
尝试使用文档实体从另一个 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