2011-10-25 37 views
0

我有一個Android項目,我正確地使用Ant和EMMA生成測試覆蓋率報告(我按照以下說明執行了操作:https://wiki.jenkins-ci.org/display/JENKINS/Building+an+Android+app+and+test+project如何篩選EMMA生成的測試覆蓋率報告中的文件,在Android中使用Ant

我想知道的是如何過濾EMMA生成的報告中出現的文件(例如,R生成的類,已經測試過的庫中的文件等)。

我在自己的build.xml文件中包含$ {sdk.dir} /tools/ant/test_rules.xml和$ {sdk.dir} /tools/ant/main_rules.xml,並且在那裏試圖更改「-emma儀器」目標看起來像:

<target name="-emma-instrument" depends="compile"> 
    <echo>Instrumenting classes from ${out.absolute.dir}/classes...</echo> 
    <!-- It only instruments class files, not any external libs --> 
    <emma enabled="true"> 
     <instr verbosity="${verbosity}" 
       mode="overwrite" 
       instrpath="${out.absolute.dir}/classes" 
       outdir="${out.absolute.dir}/classes"> 

       <filter excludes="*R*" /> 
     </instr> 
     <!-- TODO: exclusion filters on R*.class and allowing custom exclusion from 
      user defined file --> 
    </emma> 
</target> 

我也試圖把這裏指定http://emma.sourceforge.net/reference_single/reference.html#instrset.filters的EMMA覆蓋過濾器的另一個變化,但也不管用範圍,R生成的文件仍然會出現在覆蓋率報告。

任何人都知道如何解決這個問題?

回答

1

更新:過濾內建於android SDK修訂版r18中,僅查看我對鏈接問題的回答。

another question要求這個,你已經在路上的一半。要解決您的問題,請確保您的不會修改測試項目構建文件,而是目標項目之一。我真的不知道在android應用程序構建文件中涉及到什麼樣的螞蟻魔法,但是當然對於某些擴展來說,您的目標項目構建文件必須扮演重要角色,因此您必須指定目標項目中的覆蓋範圍修改。

我花了整整一個早上來分析這件事情,所以我希望它對其他開發者有一定的價值。

請注意,SDK功能應該是built-in as of revision 16

+0

感謝您的回答。我在我的測試build.xml中設置了過濾器。 – Grimmace

相關問題