基于上一篇的环境
maven:3.6.3
jdk:15
surefire:3.0.0-M5
1、testng.xml位于根目录,suiteXmlFile中没有配置路径,直接命令行执行mvn test
<suiteXmlFiles>
<suiteXmlFile>testng.xml</suiteXmlFile>
</suiteXmlFiles>
结果:控制台报错,经过分析,应该是由于找不到testng.xml报的错
2、testng.xml位于根目录,suiteXmlFile中的配置不变,执行mvn clean test -DsuiteXmlFile=testng.xml
结果:testng.xml正常运行
3、testng.xml位于根目录,suiteXmlFile配置改为$ {suiteXmlFile},执行mvn clean test -DsuiteXmlFile=testng.xml
结果:报错,用例没有跑
4、testng.xml位于根目录,将suiteXmlFile中的配置注释掉,执行mvn clean test -DsuiteXmlFile=testng.xml
结果:testng.xml正常运行
5、在根目录再添加一个suite.xml,将suiteXmlFile中的配置注释掉,执行mvn clean test -DsuiteXmlFile=testng.xml
结果:testng.xml和suite.xml都执行了
6、根目录有suite.xml,testng.xml,将suiteXmlFile中的只配置testng.xml,执行mvn clean test -DsuiteXmlFile=testng.xml
结果:只执行了testng.xml,suite.xml没有执行
其他的测试结果就不再赘述,直接总结一下。
总结:
a.<suiteXmlFile>标签可以注释掉,如果有配置,请保证<suiteXmlFile>中配置的路径是xml用例的实际地址。
b.如果要执行多个xml,有几种方式
①没有<suiteXmlFile>标签,执行mvn clean test -DsuiteXmlFile或者mvn clean test -DsuiteXmlFile=testng.xml,
testng.xml的同级xml都会执行。
②配置<suiteXmlFile>标签,将需要执行的xml都配置进去,执行mvn clean test -DsuiteXmlFile或者
mvn clean test -DsuiteXmlFile=testng.xml,则testng.xml的同级都会执行
<configuration> <suiteXmlFiles> <suiteXmlFile>testng.xml</suiteXmlFile> <suiteXmlFile>suite.xml</suiteXmlFile> </suiteXmlFiles> </configuration>③如果要指定某一个xml去执行,<suiteXmlFile>标签中只能留下需要执行的xml,执行mvn clean test -DsuiteXmlFile
或者mvn clean test -DsuiteXmlFile=testng.xml,即便等号后面写错了,也会执行<suiteXmlFile>标签中的xml
<suiteXmlFile>标签中配置$ {suiteXmlFile}目前看,应该只与jenkins的传值有关!
本文基于maven 3.6.3、jdk 15、surefire 3.0.0 - M5环境,对命令行执行testng.xml进行多种情况测试。如testng.xml位于根目录,不同suiteXmlFile配置下执行mvn命令的结果不同。最后总结出<suiteXmlFile>标签使用规则及执行多个xml的方式。
1650

被折叠的 条评论
为什么被折叠?



