maven - 使用 cobertura 和 maven 站点插件时运行两次的测试

标签 maven maven-plugin maven-cobertura-plugin

我正在使用 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>

最佳答案

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

您正在使用两个 独特 基于同一件事的报告:

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

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

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

    至于你的命令行,它会给出:
    mvn cobertura:cobertura -DskipTests -Dcobertura.report.format=html
    

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

    关于maven - 使用 cobertura 和 maven 站点插件时运行两次的测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25415304/

    相关文章:

    java - tomcat7-maven-plugin 无法从 react 器中找到依赖项

    scala - 为什么 Scalatest、Maven 和 cobertura 的代码覆盖率为零?

    junit - Cobertura 给出的参数列表太长

    eclipse - Maven 没有找到 Scala 测试

    java - 为什么 import.sql 在 Spring Boot 中会失败?

    c++ - C++中如何管理依赖关系

    java - Maven Cobertura 和包没有运行单元测试两次

    Android Maven 找不到工具 'aapt'

    maven - Mojo执行异常

    java - 无法销毁线程组 org.codehaus.mojo.exec.ExecJavaMojo$IsolatedThreadGroup[name=SitemapCheck.SitemapAction,maxpri=10]