0

我使用Cobertura maven插件[版本2.7]瞭解我的測試的代碼覆蓋率。我正在使用PowerMock [版本1.6.6]來模擬相關對象。但是當我運行mvn cobertura:cobertura並檢查報告時,覆蓋率保持不變。當我不使用嘲笑時它工作正常。這是兼容性問題嗎? 我試過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 Agent修改字節碼。 但是,PowerMock在加載類時從磁盤讀取類,所以所有更改都會丟失。 Cobertura在編譯期間可以修改類的一個小改變。如果是,那麼你可以試試。

Cobertura項目看起來被拋棄了,所以我沒有看到任何理由花時間與不支持的項目集成。我想專注於與JaCoCo的整合,並提供支持即時測試。

相關問題