Как я могу использовать фильтр для Эммы при создании теста Android с муравьем? - PullRequest
7 голосов
/ 09 сентября 2011

Я знаю, как использовать emma в ant при создании моего тестового проекта для Android, но я не могу найти никаких советов о том, как использовать фильтры при использовании SDK. Сайт emma объясняет это при вызове emma самостоятельно, но в файлах сборки Android SDK emma не вызывается в файлах ant или в командной строке, поэтому я не могу добавить параметры фильтра.

Кто-нибудь какие-нибудь предложения?

Ответы [ 2 ]

10 голосов
/ 16 июня 2012

Начиная с SDK Tools r18, вы можете просто добавить

emma.filter=-com.your.excluded.package.*

к ant.properties вашего проекта ( не тестовый проект )

5 голосов
/ 29 ноября 2011

Это зависит от версии SDK, которую вы используете, в частности от включенных файлов сборки, найденных в каталоге <android-sdk>/tools/ant.

Android SDK> = 18

Начиная с SDK r18 и выше, это так же просто, как добавить свойство в файл ant.properties целевого (не тестового) проекта. Так, например, используйте

emma.filter=-*.test.*

Чтобы исключить все классы из тестового пакета. Синтаксис фильтра emma можно найти в документации emma .

Android SDK <18 </h1> Есть проблема для этого . Это включает в себя следующее: вам нужно изменить файл сборки для вашего целевого проекта (не тестового проекта) измените файл сборки, скопировав и скопировав цель -emma-instrument из импортированных файлов сборки Android (объяснение этого метода вы найдете в стандартном файле сборки проекта, который вы получите, запустив android create/update project) измените цель в соответствии с связанной проблемой, это будет выглядеть так: <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="trace1" mode="overwrite" instrpath="${out.absolute.dir}/classes" outdir="${out.absolute.dir}/classes"> <filter excludes="*.R,*.R$$*,${emma.exclusion.pattern}" /> </instr> <!-- TODO: exclusion filters on R*.class and allowing custom exclusion from user defined file --> </emma> </target> объяснение синтаксиса фильтра исключения доступно в документации emma либо измените модификацию, либо используйте предложенное свойство ant emma.exclusion.pattern для предоставления собственных исключений Для меня это сработало как прелесть в SDK tools r13.

...