2009-06-04 96 views
48

有沒有辦法將代碼從包含中排除到Cobertura覆蓋率報告中?我們有一些方法不應包含在覆蓋報告中,因此不會降低覆蓋率。排除Cobertura代碼覆蓋的方法

我知道Clover具有這樣的功能,但是我還沒有發現Cobertura的任何類似功能。

+0

希望它即將推出。問題:http://sourceforge.net/tracker/?func=detail&atid=720017&aid=3010530&group_id=130558以及有關發佈的對話,以包含此http://sourceforge.net/mailarchive/forum.php?thread_name=0F4966F4B6F55240A08C5F9AD979B3BE07E7EFB3%40MERCMBX16D。 na.SAS.com&forum_name = cobertura-devel – 2012-06-18 23:46:34

+0

請參閱[這篇文章](http://stackoverflow.com/questions/8848585/excluding-java-files-in-sonar-report-through-jenkins/13003357#13003357),這是與科納圖拉的聲納和詹金斯排除代碼的選項,但我希望它的答案可以申請非詹金斯項目 – 2012-10-22 00:03:54

回答

52

您可以從檢測中排除類。然後他們不應該出現在報告中。請參閱以下排除聲明。

您也可以忽略對某些方法的調用。見忽略聲明如下。

如果您使用的是maven,請參閱maven plugin manual

<configuration> 
     <instrumentation> 
     <ignores> 
      <ignore>com.example.boringcode.*</ignore> 
     </ignores> 
     <excludes> 
      <exclude>com/example/dullcode/**/*.class</exclude> 
      <exclude>com/example/**/*Test.class</exclude> 
     </excludes> 
     </instrumentation> 
    </configuration> 

而對於螞蟻見this

<cobertura-instrument todir="${instrumented.dir}"> 
    <ignore regex="org.apache.log4j.*" /> 
    <fileset dir="${classes.dir}"> 
    <include name="**/*.class" /> 
    <exclude name="**/*Test.class" /> 
    </fileset> 
    <fileset dir="${jars.dir}"> 
    <include name="my-simple-plugin.jar" /> 
    </fileset> 
</cobertura-instrument> 
+0

謝謝。有什麼可以添加到代碼來排除方法嗎?比ANT中的一長串名單要容易得多。任何註釋支持? – ReneS 2009-06-05 06:42:28

+0

我對Cobertura文檔做了一個很快的搜索,但是我找不到關於Cobertura的註釋。所以你似乎需要在你的單元測試或包結構上工作,以使排除列表更短;) – 2009-06-05 06:52:04

+0

好吧,這證實了我沒有錯過任何東西。希望有一個隱藏的功能...好吧,也許我們遲早會得到一個。謝謝! – ReneS 2009-06-05 10:27:15

3

的Cobertura目前不提供這樣的功能,而且也沒有艾瑪(我們使用),雖然它被列爲即將召開的增強 - 雖然在一個擴展排除規則的形式,我相信,而不是作爲註釋。

會很方便地乾淨地覆蓋那些幾個不可進入的角落,以便您可以爭取100%而不會變得荒謬。

我想註釋很可能是做一個更加友好的方式,但他們應該得到公平的明確命名和基於可接受的方案的列表上,因爲我害怕,否則像「@ExcludeFromCoverage」會得到慷慨增加了。

21

這已經打破了我的頭一段時間了。

我的問題是我在報告部分而不是構建部分cobertura maven插件安裝程序。

如果您沒有在生成部分中設置它,則不會應用檢測設置,因此不包括類或包,因此請小心。

17

還記得排除內部類。

<exclude>path/to/class/MyClass*.class</exclude> 

我花了很多時間才注意到我錯過了一個星號!

相關問題