TestNG surefire, run suite with maven command line

前端 未结 3 964
情话喂你
情话喂你 2021-01-04 22:34

Is it possible to run a predefined xml suite from the command line through maven?

I am able to run a class or a particular test. But I am unable to run a suite.

相关标签:
3条回答
  • 2021-01-04 23:13
    <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>
    

    it worked for me.

    0 讨论(0)
  • 2021-01-04 23:20

    Usually you don't need nothing special in relationship with TestNG. Just use the maven-surefire-plugin:

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.12</version>
      </plugin>
    

    and based on that all Tests which are correctly annotated should run. Ah of course you need a dependency to TestNG like this:

    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>6.5.2</version>
      <scope>test</scope>
    </dependency>
    

    Usually i wouldn't create Test Suites anymore, cause this a point which you have to maintain which is often missed to update etc. just use annotations.

    If you need to run a particular suite of tests just define a testng.xml file in src/test/resources and enhance the configuration of the maven-surefire plugin appropriately.

      <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>
    
    0 讨论(0)
  • 2021-01-04 23:37

    This answer gave me what I was looking for, namely the ability to pass at the command line the name of the suite I want to run:

    http://www.vazzolla.com/2013/03/how-to-select-which-testng-suites-to-run-in-maven-surefire-plugin/

    In a nutshell, add the following to the maven-surfire-plugin stanza of your pom.xml:

    <suiteXmlFiles>
        <suiteXmlFile>${suiteXmlFile}</suiteXmlFile>
    </suiteXmlFiles>
    

    Then you can specify the desired testng suite xml file at the command line:

    mvn clean install test -DsuiteXmlFile=testngSuite.xml
    
    0 讨论(0)
提交回复
热议问题