4

我正在使用 maven 站点插件和 cobertura 一起运行单元测试并生成报告。一切正常,但唯一的问题是所有单元测试都运行了两次。

我试图设置forkModenevermaven-site-plugin但即使那样我也面临同样的问题。

任何帮助,将不胜感激。

我的命令:mvn cobertura:cobertura -Dcobertura.report.format=html

我的pom:

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>cobertura-maven-plugin</artifactId>
                <configuration>
                    <aggregate>true</aggregate>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>clean</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <configuration>
                    <aggregate>false</aggregate>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>findbugs-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
            </plugin>
        </plugins>
    </pluginManagement>

    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>cobertura-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

<reporting>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>cobertura-maven-plugin</artifactId>
            <configuration>
                <formats>
                    <format>html</format>
                    <format>xml</format>
                </formats>
                <instrumentation>
                    <excludes>
                        <exclude>**/test/**/*.class</exclude>
                    </excludes>
                </instrumentation>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-pmd-plugin</artifactId>
            <version>3.0.1</version>
            <configuration>
                <targetJdk>1.6</targetJdk>
                <linkXref>true</linkXref>
                <sourceEncoding>ISO-8859-1</sourceEncoding>
                <format>xml</format>
                <aggregate>true</aggregate>
                <verbose>true</verbose>
                <rulesets>
                    <ruleset>favorites.xml</ruleset>
                </rulesets>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.9.1</version>
            <configuration>
                <aggregate>true</aggregate>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>findbugs-maven-plugin</artifactId>
            <version>2.5.2</version>
            <configuration>
                <xmlOutput>true</xmlOutput>
            </configuration>
        </plugin>
    </plugins>
</reporting>
4

3 回答 3

0

我相信这是一种正常的行为。

您正在使用基于同一事物的两个不同的报告:

  • 测试报告要求运行测试但不启用覆盖率。
  • 覆盖率报告要求测试以覆盖率运行。

但两份报告都不知道对方,这就是为什么它运行两次。

[更新] 阅读此邮件列表后,它说您最好在配置文件中禁用测试(使用skipTests )。

至于你的命令行,它会给出:

mvn cobertura:cobertura -DskipTests -Dcobertura.report.format=html

但是请注意,我的项目无法让 cobertura 正常工作(在第 106 行第 12 列遇到“最终”“最终”。),所以我不知道它是否有效。

于 2014-08-20T22:26:44.243 回答
0

我最终创建了 2 个配置文件,一个用于 cobertura,另一个用于站点,它将构建 findbug、CPD 和 PMD 分析。不确定这是否是正确的方法,但可以解决我的问题。

希望这对某人有所帮助。

于 2014-08-23T01:47:00.867 回答
0

测试将始终使用cobertura-maven-plugin.

如果您需要 cobertura 报告并希望只运行一次测试,您可以尝试该qualinsight-mojo-cobertura-core插件。您可以在项目页面上找到文档:https ://github.com/QualInsight/qualinsight-mojo-cobertura 。

于 2015-09-21T11:27:06.130 回答