Как отфильтровать файлы в сгенерированном отчете о покрытии теста EMMA, используя Ant в Android - PullRequest
0 голосов
/ 25 октября 2011

У меня есть проект Android, и я правильно генерирую отчеты о тестовом покрытии, используя Ant и EMMA (я сделал это, следуя инструкциям здесь: https://wiki.jenkins -ci.org / display / JENKINS / Building + an + Android + приложение + и + тест + проект )

Что я хотел бы знать, это , как я могу отфильтровать файлы, которые появляются в отчете, сгенерированном 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 по-прежнему отображаются в отчете о покрытии.

Кто-нибудь знает, как это решить?

1 Ответ

1 голос
/ 29 ноября 2011

Обновление: фильтрация встроена в ревизию r18 Android SDK, просто посмотрите мой ответ на связанный вопрос.

Есть другой вопрос , требующий этого, когда вы уже были на полпути вниз по дороге. Чтобы решить вашу проблему, убедитесь, что вы изменили не файл сборки тестовых проектов, а файл целевого проекта . Я понятия не имею, какие виды магии муравьев используются в файлах сборки приложений для Android, но, разумеется, для расширения вашего файла сборки целевые проекты должны играть важную роль, поэтому логично, что вы должны указать изменение покрытия в рамках целевого проекта.

Мне потребовалось все утро, чтобы разобраться с этим, поэтому я надеюсь, что это будет полезно для других разработчиков.

В качестве примечания: эта функциональность должна быть встроена в версии 16 инструментов SDK.

...