TestNG XML配置文件DTD"test"标记错误

ata*_*oli 0 xml testng dtd

我总是在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)

它不会显示错误.