11

アプリケーション用の Maven テスト プロジェクトがあります。

JUnit テストは正常に実行され、コード カバレッジ テストも実行されます。

しかし、レポートには常に 0% のコード カバレッジが表示されます。

私は何をすべきか?

4

8 に答える 8

5

公式サイトによると、Eclemmaは JaCoCo ライブラリに基づく Eclipse 用のコード カバレッジ プラグインです。

Eclipse の外部で同じコード カバレッジ エンジンを使用する場合は、次のようにプロジェクトの Maven 構成 (pom) 内にプラグインJacocoを含める必要があります (このコードは Agile Engineering ブログからコピーされました)。

<build>
    <plugins>
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.6.0.201210061924</version>
            <executions>
                <execution>
                    <id>jacoco-initialize</id>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                </execution>
                <execution>
                    <id>jacoco-site</id>
                    <phase>test</phase>
                    <goals>
                        <goal>report</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

テストを実行するには、コマンド ライン ツールで次のように入力します。

mvn clean test

ps: CoberturaEmmaなどの他のコード カバレッジ プラグインを使用することもできます。

于 2013-01-02T02:27:16.877 に答える
2

これは長年にわたって知られている問題であり、残念ながらまだ正式な解決策はありません。

ここここここで見ることができます

それほどハニーではない解決策の 1 つは、eCobertura を使用すること (または eclemma を 2.x から 1.x にダウングレードすること) を試すことです

于 2015-12-02T16:25:10.447 に答える
2

Eclipse 内のツールを使用してレポートを取得したいだけだと気付きました...

Eclipse ダイアログのコード カバレッジはどうですか? このダイアログでマウスの右クリックを使用して、セッション (レポート) をエクスポートしようとしたか、または[ファイル] -> [エクスポート] 内で使用しようとしましたか?

于 2013-01-02T02:54:14.193 に答える
2

これらを行うのを忘れた場合に備えて:

  1. @Test を使用してテストに注釈を付けていますか?
  2. クラスを JUnit テスト ケースとして実行していますか、それともカバレッジ ボタンから実行していますか?

問題の原因が何であるかはわかりません。それは常に私にとってはうまくいったからです。Eclipse自体からインストールしましたか?それをアンインストールして、Eclipseから再インストールしてみてください。念のため、次のようにします。

  1. Eclipse で、[ヘルプ] > [新しいソフトウェアのインストール] をクリックします。
  2. [追加] をクリックし、次のように入力します。
  3. EclEmmaを選択してインストール
于 2012-12-18T13:40:23.170 に答える
0

この問題に遭遇したばかりで、正しく構成されていないクラスパスが原因でした。単体テストが実行されたとき、実際のソース コードではなく、コンパイルされた jar (Eclipse の外部でコンパイルされた実際のソース) に対して実行されていました。クラスパスから jar を削除した後、単体テストはパッケージ ソースに正しくヒットしました。

于 2016-07-12T23:48:34.027 に答える
-1

テストケースの一番上でクラスのインスタンスを呼び出すことで、私の問題を解決できました。すなわち

public hotelOccupancy hotel = new hotelOccupancy();

@Test
public void testName() {
    // some test here
}

これを行うと、すべてのカバレッジが機能し始め、問題が解決されました.

于 2017-10-26T04:30:05.200 に答える
-2

私はeclemma 2.3.2を使用していますが、Eclipseで完全に動作しています

これらの依存関係を pom.xml に追加するだけです。

<dependency>
    <groupId>org.jboss.arquillian.extension</groupId>
    <artifactId>arquillian-jacoco</artifactId>
    <version>1.0.0.Alpha6</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.jacoco</groupId>
    <artifactId>org.jacoco.core</artifactId>
    <version>0.7.1.201405082137</version>
    <scope>test</scope>
</dependency>

次に、プロジェクトをビルドし、Maven プロジェクトの構成を更新して、カバレッジ プラグインを期待どおりに実行します。

于 2016-02-17T10:50:24.670 に答える