1. 什么是DTD?
在创建testng.xml文件时,需要通过<!DOCTYPE>标签将引入DTD约束文件,在具体使用testng.xml之前,我们可以先了解一下什么是DTD。
DTD(Document Type Definition)用来定义XML文档的结构、校验合法的元素和属性,借助DTD相关人员、程序可以验证XML内容的是否符合既定的格式。
下面我们通过IDE尝试一下下面的这个例子:
note.dtd
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
<!--
上面写了一堆啥玩意儿,来,我们解释一下:
<!ELEMENT note (to,from,heading,body)>:用ELEMENT标签来声明元素note,即xml中可以使用<note></note>标签,
后面小括号中的内容"(to,from,heading,body)"则是定义了<note>中可以出现的子元素。
再往后看
<!ELEMENT to (#PCDATA)>
它表示在<to>和</to>标签之间可以插入字符,如存在 '&', '<', '>'这些符号需要使用转义后的符号
那么,根据这样一份DTD的描述,我们的xml应该是这样的:
-->
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
<!--
相关的工具、IDE能够依据DTD文档对xml文件的内容进行提示和验证。
-->
上面是关于DTD的简单说明和示例,想要深入了解的同学可以参考一下链接:w3schools
2. testng.xml示例
通过方法名指定要运行的测试
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1">
<test name="Test1" preserve-order="false">
<classes>
<class name="cn.chenf24k.tester.xml.xmlmethod.TestNGXmlMethod">
<methods>
<include name="m1" />
<include name="m2" />
</methods>
</class>
</classes>
</test>
</suite>
通过类名指定要运行的测试
<suite name="Suite1" verbose="1" >
<test name="Test2" >
<classes>
<class name="cn.chenf24k.tester.testngxml.TestNGXmlTest1" />
<class name="cn.chenf24k.tester.testngxml.TestNGXmlTest2" />
</classes>
</test>
</suite>
也可通过包名指定
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1">
<test name="Test3" >
<packages>
<package name="cn.chenf24k.tester.xml.xmlpackage" />
</packages>
</test>
</suite>
通过指定的组运行
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1">
<test name="Test4">
<groups>
<run>
<include name="e-commerce"/>
<exclude name="demo"/>
</run>
</groups>
<classes>
<class name="cn.chenf24k.tester.xml.xmlincludedexcluded.TestNGXmlDemo1">
</class>
<class name="cn.chenf24k.tester.xml.xmlincludedexcluded.TestNGXmlDemo2">
</class>
</classes>
</test>
</suite>
完整的功能列表可以参考testng.dtd来学习。