java - TestNG 默认情况下禁用从不安全的 URL 加载 DTD

标签 java xml selenium testng

我正在使用 testng maven 和 selenium 来运行我的测试,目前我有以下 testng.xml 文件

看起来问题出在 &listeners 和 &classes 行上,如果我用引用文件上的 xml 内容替换这些行,它运行正常。我在之前的项目中使用过它,效果很好,但不知道为什么会出现此错误。

<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"   [
        <!ENTITY listeners SYSTEM "listeners.xml">
        <!ENTITY classes SYSTEM "classes.xml">
        ]>
<suite name="Local Execution" verbose="5">
    &listeners;
    <test name="Core Integration Tests" time-out="800000">
        <groups>
            <run>
                <include name="failed"/>
            </run>
        </groups>
        &classes;
    </test>
</suite>

Listener.xml内容如下

<listeners>
    <listener class-name="com.myclass.Listeners.TestListener"/>
</listeners>

类文件是

<classes>
    <class name="com.orders.tc_class1"/>
    <class name="com.orders.tc_class2"/>
</classes>

这是我遇到的错误的一部分

org.testng.TestNGException: 
TestNG by default disables loading DTD from unsecure Urls. If you need to explicitly load the DTD from a http url, please do so by using the JVM argument [-Dtestng.dtd.http=true]
    at org.testng.xml.TestNGContentHandler.resolveEntity(TestNGContentHandler.java:102)

最佳答案

是的,这是 TestNG 的默认行为,我通过拉取请求引入了它来修复错误 https://github.com/cbeust/testng/issues/2022

要在 intelliJ 中设置 JVM 参数,请选择运行 > 编辑配置,然后在 -ea 之后的 VM 选项部分中添加此 JVM 参数(可以通过默认。

更多关于编辑配置的信息,请引用官方文档here

添加了屏幕截图以便于在 Intellij 中查找

参数值

-ea -Dtestng.dtd.http=true

enter image description here

如果上述在模板级别不起作用,这将修复它,即

Run--> Edit configuration --> template --> testng

enter image description here

关于java - TestNG 默认情况下禁用从不安全的 URL 加载 DTD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57299606/

相关文章:

java - Hibernate 注释级联不起作用

java - setMaximumSize 对以 boxlayout 排列的 JPanel 的影响

sql - 如何在 SQL Management Studio 中轻松编辑 SQL XML 列

javascript - 从 URL 捕获顶级域名时出现问题

java - 如何在 Java 中打断长行

java - spring boot maven插件-jvm参数-直接内存大小设置

xml - 如何使用 Emacs Lisp 编辑 xml/dom

javascript - 获取 "XMLHttpRequest is not defined"

python - 访问文件上传窗口 - Python + Selenium

Java Selenium/HtmlunitDriver 打开错误的网站