0

私は Android プロジェクトを持っており、Ant と EMMA を使用してテスト カバレッジ レポートを正しく生成しています (こちらの手順に従って実行しました: https://wiki.jenkins-ci.org/display/JENKINS/Building+an+Android+app +and+test+project )

私が知りたいのは、EMMA によって生成されたレポートに表示されるファイル(たとえば、R によって生成されたクラス、既にテスト済みのライブラリ内のファイルなど) をフィルター処理する方法です。

自分の build.xml ファイルに ${sdk.dir}/tools/ant/test_rules.xml と ${sdk.dir}/tools/ant/main_rules.xml の両方を含め、そこで「-emma- Instrument" ターゲットは次のようになります。

<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>

また、ここで指定されている EMMA カバレッジ フィルターの別のバリエーションを適用しようとしましたhttp://emma.sourceforge.net/reference_single/reference.html#instrset.filtersが、どちらも機能せず、R で生成されたファイルは引き続きカバレッジに表示されます。報告。

誰でもこれを解決する方法を知っていますか?

4

1 に答える 1

1

更新: Android SDK のリビジョン r18 の時点でフィルタリングが組み込まれています。リンクされた質問に対する私の回答を参照してください。

これを求める別の質問があります。あなたはすでに道の途中にいます。問題を解決するには、テスト プロジェクトのビルド ファイルではなく、ターゲット プロジェクトのビルド ファイルを変更するようにしてください。Androidアプリのビルドファイルにどのようなアリの魔法が関係しているのかはまったくわかりませんが、もちろん、ターゲットプロジェクトのビルドファイルが重要な役割を果たす必要があるため、指定する必要があるのは理にかなっていますターゲット プロジェクト内のカバレッジの変更。

この問題を解決するのに午前中かかったので、他の開発者にとって何らかの価値があることを願っています。

補足として、この機能はSDK ツールのリビジョン 16 の時点で組み込まれている必要があります。

于 2011-11-29T12:50:35.123 に答える