java - TestNG 默认禁用从不安全的 Url 加载 DTD
问题描述
我正在使用 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 参数,请选择Run > Edit Configurations
,然后在 VM 选项部分中添加此 JVM 参数-ea
(默认情况下会出现。
有关编辑配置的更多信息,请参阅此处的官方文档
添加了屏幕截图以便在 Intellij 中轻松查找
参数值
-ea -Dtestng.dtd.http=true
如果上述方法在模板级别不起作用,这将解决它,即
Run--> Edit configuration --> template --> testng
推荐阅读
- javascript - Webpack 将 lib 与 html 文件捆绑为单个 js
- android-studio - 在 android studio 中为 google admob 添加测试设备时出错
- docker - 在 Azure Functions PowerShell 运行时本地 Docker 映像中使用 HTTPS
- r - REST API POST 和安全性
- c++ - C ++ constexpr 布尔值与宏
- python - 查找在 chromium 上打开的活动或当前选项卡的 URL,或查看是否打开了特定选项卡
- c - libfuse 中的 hello_ll.c 是否已过时?
- reactjs - React Router - 渲染函数 - React 测试库
- python - windows10如何安装hlsdl
- linux - 在没有 SDK 但有运行时的情况下运行 .net 核心