2016-05-16 65 views
0

我有一個巨大的代碼庫使用maven配置。我的代碼庫分爲不同的Maven模塊,因此我有一個主要的POM文件,每個子模塊都有自己的POM文件。但是這些模塊仍然會調用彼此的功能。 Junit測試是爲每個模塊編寫的。我正在使用Cobertura來生成代碼覆蓋率。它爲每個模塊生成單獨的覆蓋報告。當Cobertura爲模塊A生成代碼覆蓋率並且來自模塊B的特定代碼被來自模塊B的測試調用時。在這種情況下,Cobertura將來自模塊A的代碼標記爲未被覆蓋。這是預期的行爲?或者我有錯誤的配置?Cobertura生成不正確的代碼覆蓋範圍

Maven的 - 的Cobertura配置中的子模塊:

構建部分:

<plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>cobertura-maven-plugin</artifactId> 
       <version>${org.codehaus.mojo.cobertura-maven-plugin.version}</version> 
      </plugin> 

報告部分:

<plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>cobertura-maven-plugin</artifactId> 
       <version>${org.codehaus.mojo.cobertura-maven-plugin.version}</version> 
       <configuration> 
        <formats> 
         <format>xml</format> 
        </formats> 
       </configuration> 
      </plugin> 

命令運行的Cobertura報告: MVN的Cobertura:的Cobertura

請在此引導我。

如果需要更多信息,請讓我知道嗎?

+0

請指導我在此。 – amit

回答

1

我建議您嘗試使用JaCoCo代碼覆蓋工具進行運行時覆蓋生成,該代碼更容易實現,並且在代碼覆蓋[包,類,方法,行]方面更具表現力。與Cobertura相比,它提供了更多的功能。 我試過JaCoCo和其他工具,發現JaCoCo生成的報告與其他工具相比更易於理解和使用。

參見: https://confluence.atlassian.com/display/CLOVER/Comparison+of+code+coverage+tools Need to generate Code Coverage Reports using jacoco.exec file

+0

會嘗試Jacoco。它是否涵蓋在其他模塊上運行的測試(如問題中提到的)? – amit

+0

是的。它將涵蓋在該服務器下部署的所有模塊。 –