0

私のテストのコードカバレッジを理解するためにCobertura mavenプラグイン[バージョン2.7]を使用しています。 PowerMock [バージョン1.6.6]を使用して、依存オブジェクトをモックしています。しかし、mvn cobertura:coberturaを実行してレポートを確認すると、カバレッジは変わりません。 mockingを使わないとうまく動作します。これは互換性の問題ですか? レポートが新しく生成されたことを確認するために、mvn cleanを複数回試しました。ここでCoberturaがPowermockでコードカバレッジを向上させていない

は、この上の任意のヘルプは高く評価され、私のpom.xml

<properties> 
    <powermock.version>1.6.6</powermock.version> 
</properties> 
<build> 
    <plugins> 
     <!-- Cobertura plugin for code coverage --> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>cobertura-maven-plugin</artifactId> 
      <version>2.7</version> 
      <configuration> 
       <formats> 
        <format>html</format> 
        <format>xml</format> 
       </formats> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
<dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.12</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.powermock</groupId> 
     <artifactId>powermock-module-junit4</artifactId> 
     <version>${powermock.version}</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.powermock</groupId> 
     <artifactId>powermock-api-mockito</artifactId> 
     <version>${powermock.version}</version> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 

です。

答えて

0

残念ながら、それは不可能である大きなチャンスがあります。私はCoberturaがどのくらい正確に動作しているのか分かりませんが、JaCoCoのようなアプローチを使用し、Javaエージェントでバイトコードを変更すると思われます。 しかし、PowerMockはクラスをロードするときにディスクからクラスを読み込むため、すべての変更が失われます。 Coberturaがコンパイル時にクラスを変更できる小さな変更の1つ。はいの場合は、試してみてください。

Coberturaプロジェクトは放棄されているようですので、サポートされていないプロジェクトとの統合に時間を費やす理由はありません。私はJaCoCoとの統合に重点を置いて、オンザフライ計測をサポートしています。

関連する問題