如何告诉Maven和TestNG运行特定的测试类或suite.xml文件?

我正在使用Maven对网站运行TestNG集成测试。 目前,我可以使用此命令来运行特定的测试类:

mvn -Dit.test="MyTestClassname" verify 

我还希望能够指定一个TestNG套件XML文件来运行一堆类和特定参数。

我可以在我的POM中设置Failsafe插件来接受一个suiteXmlFiles参数,如下所示:

  1  ${basedir}/src/test/resources/suites/${suiteFile}   ${browser} ${environment} ${debugMode} ${caseId}   

这让我发出这个命令:

 mvn -DsuiteFile="MyTestSuite.xml" 

但是现在我不能使用-Dit.test =“MyTestClassname”选项,因为Maven现在尝试传递一个空值作为套件名称。

有没有解决的办法? 再一次,我想要:

  • 指定一个测试类(在命令行中有一堆参数)
  • 指定包含一堆测试类和不同参数的testng XML文件。

我正在使用maven-surefire-plugin。 它允许我运行suitefile和类。 这是我的万无一失的插件

  org.apache.maven.plugins maven-surefire-plugin 2.17   ${suiteXmlFile}  ${skipTests} true   

要运行suitefile,我使用

 mvn test -DsuiteXmlFile= 

为了运行类文件,我使用了

 mvn test -Dtest= 

上述方法对我不起作用。 如果您在传递${suiteXmlFile}或其他问题时也在pom.xml上收到错误:

   *ERROR*${suiteXmlFile}*ERROR*  

这是一个更好的解决方案,在命令中,cd到你的pom.xml文件的位置然后在命令行上运行:

mvn test -Dsurefire.suiteXmlFiles = yourfileName(WithFullPathIfNotInRootDirectory).xml