TestNG surefire,使用maven命令行运行套件

时间:2012-04-30 22:19:03

标签: testing selenium-webdriver maven-2 testng surefire

是否可以通过maven从命令行运行预定义的xml套件?

我可以运行课程或特定考试。但我无法开办套房。

以下是我从命令行运行的内容: - >

 mvn -Dtest=TestCircle#mytest -Denvironment=test -Dbrowser=firefox -DscreenShotDirectory=/Users/jeremy/temp test

我确实有一个定义的套件,它可以通过intelliJ很好地运行,但我不知道如何调用suite.xml文件。

或者例如,在运行测试之后,testng会创建一个testng-failed文件,该文件被设置为再次运行所有失败的测试。

使用mvn,我将如何启动此测试套件。

3 个答案:

答案 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>