是否可以通过maven从命令行运行预定义的xml套件?
我可以运行课程或特定考试。但我无法开办套房。
以下是我从命令行运行的内容: - >
mvn -Dtest=TestCircle#mytest -Denvironment=test -Dbrowser=firefox -DscreenShotDirectory=/Users/jeremy/temp test
我确实有一个定义的套件,它可以通过intelliJ很好地运行,但我不知道如何调用suite.xml文件。
或者例如,在运行测试之后,testng会创建一个testng-failed文件,该文件被设置为再次运行所有失败的测试。
使用mvn,我将如何启动此测试套件。
答案 0 :(得分:17)
这个答案给了我正在寻找的东西,即能够在命令行传递我想要运行的套件的名称:
http://www.vazzolla.com/2013/03/how-to-select-which-testng-suites-to-run-in-maven-surefire-plugin/
简而言之,将以下内容添加到pom.xml的maven-surfire-plugin节中:
<suiteXmlFiles>
<suiteXmlFile>${suiteXmlFile}</suiteXmlFile>
</suiteXmlFiles>
然后,您可以在命令行中指定所需的testng suite xml文件:
mvn clean install test -DsuiteXmlFile=testngSuite.xml
答案 1 :(得分:8)
<build>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
</build>
它对我有用。
答案 2 :(得分:6)
通常,您不需要与TestNG有任何特殊关系。只需使用maven-surefire-plugin:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12</version>
</plugin>
并且基于所有正确注释的测试应该运行。当然,你需要依赖于TestNG:
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.5.2</version>
<scope>test</scope>
</dependency>
通常我不再创建测试套件,因此需要维护这一点,经常会错过更新等等。只需使用注释。
如果您需要运行特定的测试套件,只需在src / test / resources中定义一个testng.xml文件,并相应地增强maven-surefire plugin的配置。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>