我正在使用 Maven 对网站运行 TestNG 集成测试。目前,我可以使用此命令来运行特定的测试类:
mvn -Dit.test="MyTestClassname" verify
我还希望能够指定一个 TestNG 套件 XML 文件来运行一堆带有特定参数的类。
我可以在 POM 中设置 Failsafe 插件来接受 suiteXmlFiles 参数,如下所示:
<configuration>
<threadCount>1</threadCount>
<suiteXmlFiles>
<suiteXmlFile>${basedir}/src/test/resources/suites/${suiteFile}</suiteXmlFile>
</suiteXmlFiles>
<systemPropertyVariables>
<browser>${browser}</browser>
<environment>${environment}</environment>
<debugMode>${debugMode}</debugMode>
<caseId>${caseId}</caseId>
</systemPropertyVariables>
</configuration>
这让我可以发出这个命令:
mvn -DsuiteFile="MyTestSuite.xml"
但现在我无法使用 -Dit.test="MyTestClassname"选项,因为 Maven 现在尝试传递一个空值作为套件名称。
有办法解决这个问题吗?再说一次,我想要:
- 指定一个测试类(在命令行中使用一堆参数)
- 指定一个 testng XML 文件,其中包含一堆测试类和不同的参数。
最佳答案
我正在使用 maven-surefire-plugin。它允许我运行 suitefile 和类。 这是我的万无一失的插件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>${suiteXmlFile}</suiteXmlFile>
</suiteXmlFiles>
<skipTests>${skipTests}</skipTests>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
要运行 suitefile ,我使用
mvn test -DsuiteXmlFile=<suitefile>
为了运行类文件,我使用
mvn test -Dtest=<qualified path of the test class>
关于java - 如何告诉 Maven 和 TestNG 运行特定的测试类或 suite.xml 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29243346/