surefire插件的多个测试配置

时间:2015-02-17 16:24:36

标签: maven junit testng

我的pom有问题:

项目中有两种类型的测试:

使用TestNG和JUnit代码覆盖率测试的主要测试集。我想要的是在test-compile阶段运行JUnit测试,如果以前失败,不要运行TestNG测试(在test阶段运行)。

截至目前,我有以下仅运行TestNG的内容:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.17</version>
    <configuration>
        <argLine>
            -javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/1.8.4/aspectjweaver-1.8.4.jar
        </argLine>
        <properties>
            <property>
                <name>listener</name>
                <value>org.uncommons.reportng.HTMLReporter, org.uncommons.reportng.JUnitXMLReporter</value>
            </property>
        </properties>
        <suiteXmlFiles>
            <suiteXmlFile>src/test/_all.xml</suiteXmlFile>
        </suiteXmlFiles>
        <testFailureIgnore>true</testFailureIgnore>
    </configuration>
</plugin>

我尝试使用<execution>标记,但我无法提供TestNG套件的路径。任何想法如何使用surefire插件组合这些测试并指定不同的目标?

1 个答案:

答案 0 :(得分:0)

解决方案是从maven-surefire-plugin中单独添加maven-failsafe-plugin。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <version>2.17</version>
    <dependencies>
        <dependency>
            <groupId>org.apache.maven.surefire</groupId>
            <artifactId>surefire-junit47</artifactId>
            <version>2.17</version>
        </dependency>
    </dependencies>
    <configuration>
        <includes>
            <include>junitcodecoverage/**Test.java</include>
        </includes>
    </configuration>
    <executions>
        <execution>
            <id>integration-test</id>
            <phase>test-compile</phase>
            <goals>
                <goal>integration-test</goal>
                <goal>verify</goal>
            </goals>
        </execution>
    </executions>
</plugin>