Это зависит от версии 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.