基于上一篇的环境
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的传值有关!