0

我在一个多模块项目中使用 Maven 3,并使用以下报告插件配置站点:1. findbugs 2. cobertura 3. 用于测试的肯定报告

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-site-plugin</artifactId>
              <version>${maven.site.version}</version>
              <configuration>
                <reportPlugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>findbugs-maven-plugin</artifactId>
                    </plugin>
                    <plugin>
                      <groupId>org.codehaus.mojo</groupId>
                      <artifactId>cobertura-maven-plugin</artifactId>
                    </plugin>
                     <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-report-plugin</artifactId>
                    </plugin>
                </reportPlugins>
              </configuration>
        </plugin>

如果我使用:

mvn 干净安装后的 mvn site -DskipTests=true

在 mvn 站点之后,我没有得到适当的报告。Cobertura 相关的测试覆盖率报告未显示正确的数据,即所有包都显示为 0% 的测试覆盖率。似乎 cobertura 想要自己运行测试以确定覆盖率。

但是当我跑步时

mvn网站

这使得我的所有测试每次运行两次,用于 cobertura 和 surefire 报告。

我只想运行一次测试并生成所需的报告。请让我知道在 maven 中使用上述 reportPlugins 实现此目的的正确方法。

4

1 回答 1

1

Cobertura 和surefire 报告(用于站点生成)做两件不同的事情。因此,您无法避免两次运行测试 - 一次用于 cobertura,一次用于站点。

您可以看到的是使 cobertura 超出 maven 默认生命周期并根据需要单独运行。这样,mvn site只会为站点生成运行万无一失。

于 2011-12-13T12:46:40.373 回答