2

これら 2 つの比較の質問をする基本的な理由coberturaは、pom のビルド セクションに次のプラグイン情報を配置した後、サイト ディレクトリ (の場合) にレポートを生成できることです。しかし、同じことは起こりませんemma。codehause mojo のドキュメントを確認しましたが、どちらもほぼ同じです。私の構成は次のとおりです。

<plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>emma-maven-plugin</artifactId>
            <version>1.0-alpha-2</version>
            <executions>
                <execution>
                    <phase>process-classes</phase>
                    <goals>
                        <goal>emma</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

しかし、サイトディレクトリで期待どおりにレポートを生成しませんが、coverage.em が生成され、毎回インストルメント化されたクラスを見ることができます。設定がありませんか?

4

2 に答える 2

1

問題を再現できません。構成スニペットをコピーしてランダムに貼り付け、トリガーのpom.xml後のフェーズを実行すると、カバレッジ レポートが期待どおりに生成されます。process-classesemma:emma

$ mvn クリーン プロセス クラス
[情報] プロジェクトをスキャンしています...
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[INFO]ビルドテストプロジェクト
[情報] タスク セグメント: [クリーン、プロセス クラス]
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[情報] [クリーン: クリーン {実行: デフォルト-クリーン}]
[情報] ディレクトリ /home/pascal/tmp/test-project/target を削除しています
[INFO] [resources:resources {execution: default-resources}]
[情報] 'UTF-8' エンコーディングを使用して、フィルター処理されたリソースをコピーしています。
[情報] 1 個のリソースをコピーしています
[情報] [コンパイラ: コンパイル {実行: デフォルト コンパイル}]
[情報] 1 つのソース ファイルを /home/pascal/tmp/test-project/target/classes にコンパイルしています
[INFO] emma:emma 準備中

...

EMMA: [/home/pascal/tmp/test-project/coverage.ec] {93 ms} にマージされたランタイム カバレッジ データ
[情報] [エマ:エマ {実行: デフォルト}]
入力ファイルの処理中 ...
2 ファイルが 3 ミリ秒で読み取られ、マージされました
[xml] レポートを [/home/pascal/tmp/test-project/target/site/emma/coverage.xml] に書き込んでいます ...
[/home/pascal/tmp/test-project/target/site/emma/index.html] に [html] レポートを書き込んでいます ...
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[情報] ビルド成功
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------

プロジェクトに単体テストはありますか? ファイルはcoverage.em空ではありませんか? emma:emmaコマンドラインで実行するとどうなりますか? オプションを指定して mvn を実行すると、-Xヒントが得られますか? 役立つトレースを投稿できますか?

補足として、私はemma:emma通常のビルドの一部として個人的には実行しません。emma:emmaコマンド ラインからゴールを実行するか、使用法ページで提案されているようにプラグインとレポート セクションを構成します。しかし、それは別の話であり、質問には答えません。

于 2010-06-10T13:25:06.010 に答える
0

これは本当に奇妙です: 修正されたプラグイン エントリは次のとおりです: 出力ディレクトリを参照してください

<plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>emma-maven-plugin</artifactId>
            <version>1.0-alpha-2</version>
            <inherited>true</inherited>
            <executions>
                <execution>
                    <id>emma</id>
                    <phase>process-classes</phase>
                    <goals>
                        <goal>emma</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <outputDirectory>${project.build.directory}</outputDirectory>
            </configuration>
        </plugin>

emma は ${project.build.directory}/emma を受け入れません。

結論 : サブディレクトリを ${project.build.directory} に追加すると、emma はレポートを生成しません (例: ${project.build.directory}/emma-reports)。

于 2010-06-10T13:50:59.513 に答える