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

时间:2012-12-14 23:50:39

标签: xml testng dtd

我总是在TestNG XML配置文件中的 test 标记(在测试名称=“Bing-Search-Sample ...”中出现此错误,当时eclipse正在尝试根据其DTD验证XML。该文件工作正常,似乎没有问题:

  

元素类型“test”的内容必须匹配   “(方法 - 选择?,参数*,组?,包?,类?)”。

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>

由于XML工作正常,我想知道TestNG DTD是否存在问题,或者是否在eclipse的XML文件验证中存在问题。

6 个答案:

答案 0 :(得分:9)

显然元素的顺序很重要。首先是参数,然后是组,类应该是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>

答案 1 :(得分:6)

只需更改第一行:

<?xml version="1.0" encoding="UTF-8"?>

删除此行:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

它不会显示错误。

答案 2 :(得分:1)

验证的一个常见用途是确保软件知道输入的内容,以确保每个有效的文档都能得到正确处理。并不总是保证每个无效文档都会引发错误 - 有时(如此处)某些消费软件实际上可以处理一些无效的文档。

您询问软件是否正确处理您的输入这一事实意味着DTD存在问题。不一定:定义严格的排序通常比允许排序中所有可能的变化更容易,特别是当元素的顺序不传达信息时。

答案 3 :(得分:1)

只需替换以下几行:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 

使用:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-2.4.dtd"> 

对我有用。

参考:https://www.experts-exchange.com/questions/23176057/web-xml-Element-type-listener-must-be-declared.html

答案 4 :(得分:0)

还要检查您的testng.xml格式是否正确,即其中没有多余的字符。就我而言,我错误地将两个右括号放在一起,并尝试执行testng.xml。它会引发相同的错误。

答案 5 :(得分:-2)

如果无效,请尝试使用任何其他有效testng.xml文件的内容替换文件内容。这适用于我的情况。