2011-06-24 45 views
0

我使用Cobertura進行代碼覆蓋率分析。如果我在Jenkins中運行構建,則generated中的類包含在覆蓋率結果中,但覆蓋率爲0%。如果我在我的工作區(Eclipse)中運行代碼覆蓋率,則覆蓋率要高得多。包裹com.my.package的覆蓋範圍是可以的。我錯過了一些配置嗎?Cobertura代碼覆蓋率結果不完整

我的項目結構如下:在POM-文件

 
- com 
+- com.my 
+-- com.my.package 
+--- class1.java 
+--- class2.java 
- generated 
+- classX.java 
+- classY.java 

我的Cobertura配置:

 <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>cobertura-maven-plugin</artifactId> 
      <version>2.4</version> 
      <configuration> 
       <formats> 
        <format>xml</format> 
       </formats> 
       <check> 
        <branchRate>0</branchRate> 
        <lineRate>0</lineRate> 
        <haltOnFailure>false</haltOnFailure> 
        <totalBranchRate>0</totalBranchRate> 
        <totalLineRate>0</totalLineRate> 
        <packageLineRate>0</packageLineRate> 
        <packageBranchRate>0</packageBranchRate> 
       </check> 
       <instrumentation> 
        <excludes> 
         <exclude>**/*Test.class</exclude> 
        </excludes> 
       </instrumentation> 
      </configuration> 
      <executions> 
       <execution> 
        <phase>test</phase> 
        <goals> 
         <goal>cobertura</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
+0

我有一個類似的問題,但並不滿足於「不這樣做代碼覆蓋上生成的代碼'的答案。我設法把下面的[解決方案](http://stackoverflow.com/questions/11159656/cobertura-code-coverage-for-freemarker-auto-generated-code) – amaidment

回答

1

生成的代碼不應該被測試並且不應該以代碼覆蓋率度量被使用。原因是你不應該測試生成代碼的庫。

我從來沒有用過的Cobertura自己,但似乎你應該添加這樣的事情:

  <instrumentation> 
       <excludes> 
        <exclude>**/*Test.class</exclude> 
        <exclude>generated/*.class</exclude> 
       </excludes> 
      </instrumentation> 
+0

當然,你是對的:)排除它他們好得多。 – Kai

相關問題