4

単体テストを実行してレポートを生成するために、maven サイト プラグインと cobertura を一緒に使用しています。すべて正常に動作していますが、唯一の問題は、すべての単体テストが 2 回実行されていることです。

私は設定しようとしforkModeましnevermaven-site-pluginが、それでも同じ問題に直面しています。

どんな助けでも大歓迎です。

私のコマンド:mvn cobertura:cobertura -Dcobertura.report.format=html

私のポン:

<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

これは正常な動作だと思います。

同じものに基づく2 つの異なるレポートを使用しています。

  • テスト レポートでは、テストを実行する必要がありますが、カバレッジは有効になりません。
  • カバレッジ レポートでは、カバレッジを使用してテストを実行する必要があります

ただし、両方のレポートはお互いを認識していないため、2 回実行されます。

[更新] このメーリングリストを読んだ後、できればプロファイルでテストを無効にする必要があると書かれています ( skipTestsを使用)。

コマンドラインについては、次のようになります。

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

ただし、自分のプロジェクトでは cobertura を動作させることができなかった ( 106 行目、12 列目で Encountered " "final" "final "" を取得した) ことができなかったため、動作したかどうかはわかりません。

于 2014-08-20T22:26:44.243 に答える
0

1 つは cobertura 用、もう 1 つはサイト用で、findbugs、CPD、および PMD 分析を構築する 2 つのプロファイルを作成することになりました。これが正しい方法かどうかはわかりませんが、私の問題は解決します。

これが誰かに役立つことを願っています。

于 2014-08-23T01:47:00.867 に答える