2011-06-16 74 views
3

我需要從儀器和代碼覆蓋範圍中跳過某些方法或代碼段。這導致我到Exclude methods from code coverage with Cobertura排除方法/儀器分支cobertura

隨後的Cobertura螞蟻頁 http://cobertura.sourceforge.net/anttaskreference.html說 ...... 你可以告訴的Cobertura通過傳遞「忽略」正則表達式忽略某些類。忽略模式可以是任何有效的perl 5正則表達式。這將忽略對任何匹配忽略正則表達式的方法的調用。 在教學過程中它不會跳過這些類。要排除類被檢測到,請將它們從文件集中排除,或使用下面的替代方法並指定excludeClasses模式。 ....

從net.sourceforge.cobertura.ant.InstrumentTask.java

 for (int i = 0; i < ignoreBranchesRegexs.size(); i++) { 
      IgnoreBranches ignoreBranchesRegex = (IgnoreBranches)ignoreBranchesRegexs.get(i); 
      builder.addArg("--ignoreBranches", ignoreBranchesRegex.getRegex()); 
     } 

什麼是 「--ignoreBranches」 做的源代碼?預期的模式是什麼?我會去嘗試一下。如果您使用了上述選項,請分享您的「命令行」

回答

0

這不是對問題的直接回答,但我認爲它會是:「掩蓋它。」不要從覆蓋報告中排除事情。修復覆蓋面。

+0

分行報道如何?你是否暗示你爲自動生成的equals方法的每個if語句編寫測試用例? – add9 2012-12-03 17:28:42

+0

@imellan:復活一個老問題,但仍然相關。如果是代碼,請覆蓋它,不管是誰寫的。一個更好的替代愚蠢的,生成的代碼可能是一個像Guava [Objects.equal()](http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/base/Objects .html#equal(java.lang.Object,java.lang.Object))或commons-lang [EqualsBuilder](http://commons.apache.org/lang/api-2.3/org/apache/commons/lang/建設者/ EqualsBuilder.html)。底線是:如果您打算讓代碼做某件事,最好進行測試來表達您的意圖。 – 2012-12-15 21:46:52