我总是在TestNG XML配置文件中测试标签(在线测试名称="Bing-Search-Sample ...")中出现此错误,当eclipse尝试根据其DTD验证XML时.该文件工作正常,似乎没有问题:
元素类型"test"的内容必须匹配"(method-selectors?,parameter*,groups ?, packages?,classes?)".
XML文件:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="tests" allow-return-values="true"
verbose="10">
<test name="Bing-Search-Sample-Test">
<classes>
<class name="package.TestFactory" />
</classes>
<groups>
<run>
<include name="sample-tests" />
</run>
</groups>
<parameter name="testInterfaceXML" value="SearchInterface.xml"></parameter>
<parameter name="testSuiteXML" value="SearchTest.xml"></parameter>
</test>
</suite>
Run Code Online (Sandbox Code Playgroud)
由于XML工作正常,我想知道TestNG DTD或使用eclipse的XML文件验证是否存在问题.
ata*_*oli 10
显然,元素的顺序很重要.首先是参数,然后是组,类应该是test元素中的最后一个元素.这是配置文件的正确格式:
<suite name="tests" allow-return-values="true"
verbose="10">
<test name="Bing-Search-Sample-Test">
<parameter name="testInterfaceXML" value="SearchInterface.xml"></parameter>
<parameter name="testSuiteXML" value="SearchTest.xml"></parameter>
<groups>
<run>
<include name="sample-tests" />
</run>
</groups>
<classes>
<class name="package.TestFactory" />
</classes>
</test>
</suite>
Run Code Online (Sandbox Code Playgroud)
小智 6
只需更改第一行,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
Run Code Online (Sandbox Code Playgroud)
删除此行:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
Run Code Online (Sandbox Code Playgroud)
它不会显示错误.