如何使maven cobertura和surefire插件一起工作?

时间:2012-02-17 01:55:32

标签: maven configuration cobertura maven-surefire-plugin

我将surefire和cobertura插件放在我的pom.xml中,但我无法将它们配置为正常工作。或者cobertura没有运行或测试执行两次。

那么,我怎样才能将插件配置为只运行一次?

如果我以这种方式配置,cobertura不会运行:

<plugin>
<groupId>org.codehaus.mojo</groupId>
    <artifactId>cobertura-maven-plugin</artifactId>
<version>2.5.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
    <version>2.12</version>
</plugin>

如果我以这种方式配置,测试将执行两次:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>cobertura-maven-plugin</artifactId>
    <version>2.5.1</version>
    <executions>
        <execution>
            <phase>test</phase>
            <goals>
                <goal>cobertura</goal>
            </goals>
        </execution>
    </executions>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.12</version>
</plugin>

2 个答案:

答案 0 :(得分:0)

测试将运行两次 - 它就是这样。请参阅Samuel的评论running junits and cobertura with maven

答案 1 :(得分:0)

这就是我如何在启用cobertura并关闭surefire的情况下进行测试的方法。 将此添加到您的pom,或为-DuseSystemClassLoader = false

放入mvn选项
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19.1</version>
            <configuration>
                <useSystemClassLoader>false</useSystemClassLoader>
                <testFailureIgnore>true</testFailureIgnore>
            </configuration>
        </plugin>