Внешнее покрытие Android API не появится

В течение последнего месяца я пытался вывести отчет о покрытии кода моего проекта Android, который включает внешние банки (я работаю на ADT20). Всякий раз, когда я бегу

тест установки отладки ant emma

Он показывает 100% покрытие моего проекта Android, но отчет о покрытии не содержит пакетов и классов моих внешних банок. Может ли кто-нибудь помочь мне получить отчет о покрытии пакетов и классов во внешних банках либо с помощью emma ant build, либо с помощью любого инструмента покрытия кода Android, который когда-либо выполнял мою работу.

Спасибо


person Rohit Jindal    schedule 05.12.2012    source источник
comment
Мне удалось получить пакет моего внешнего jar-файла в моем отчете о покрытии кода, но процент попаданий для моих пакетов и классов jar-файлов все же составляет 0%. Что я делаю неправильно?   -  person Rohit Jindal    schedule 15.12.2012


Ответы (1)


Новейший SDK использует emma, помещая emma перед сборкой:

ant emma debug install
ant emma debug install test

Первый запускается из вашего директора проекта, второй — из тестового каталога. При этом будет создан полный отчет о покрытии.

для получения дополнительной информации см. эту ссылку

ADT r20-preview решает эту проблему, предоставляя доступ к полному пути к классам протестированных проектов и их библиотечных проектов:

http://tools.android.com/download/adt-20-preview

Это даст вам отчеты о покрытии кода в ваших библиотечных проектах, но вам придется внести некоторые изменения в тестовую цель build.xml, чтобы также прикрепить исходные файлы.

См. исходный код проекта этой библиотеки Android для отчета Emma (ant , emma) для получения дополнительной информации о том, как на данный момент внедрить тестовое покрытие emma для ваших библиотечных проектов.

Пример-build.xml:

<emma>
                <!-- Grantland: Attach Android library project sources to the emma report -->
                <report sourcepath="${tested.project.absolute.dir}/${source.dir};${tested.android.library.source.dir}"
                                  verbosity="${verbosity}">
                <!-- <report sourcepath="${tested.project.absolute.dir}/${source.dir}"
                                  verbosity="${verbosity}"> -->
                    <!-- TODO: report.dir or something like should be introduced if necessary -->
                    <infileset dir=".">
                        <include name="coverage.ec" />
                        <include name="coverage.em" />
                    </infileset>
                    <!-- TODO: reports in other, indicated by user formats -->
                    <html outfile="coverage.html" />
               </report>
            </emma>

свойства муравья:

Это может быть список каталогов, разделенных точкой с запятой.

tested.android.library.source.dir=../library/src;etc
person Ravindra Bagale    schedule 05.12.2012
comment
Я выполнил вышеуказанные шаги, но результаты такие же, как и раньше. В отчет Coverage.html включены только пакеты моего приложения, но пакет внешних банок в основном проекте не включен в отчет. Как я могу получить отчет о покрытии для банок, добавленных в мой основной проект. - person Rohit Jindal; 05.12.2012
comment
Я также пробовал вышеуказанные изменения, но мне не ясно, как точно добавить путь к моим банкам в файлах build.xml и ant.properties. Мои банки присутствуют в папке libs основного проекта. - person Rohit Jindal; 05.12.2012
comment
Вышеуказанные изменения вносятся в файл build.xml основного проекта или в файл build.xml тестового проекта. - person Rohit Jindal; 05.12.2012
comment
После выполнения вышеперечисленных шагов в моем отчете о покрытии отображается пакет внешней банки, но он не попадает. Его процент покрытия составляет 0%. Я что-то упускаю. - person Rohit Jindal; 05.12.2012
comment
@RohitJindal: удалить source.dir из build.properties тестового проекта - person Ravindra Bagale; 05.12.2012
comment
В моем тестовом проекте нет файла build.properties. Есть только файлы project.properties, local.properties, ant.properties и build.xml. - person Rohit Jindal; 05.12.2012
comment
@RohitJindal: см. этот stackoverflow.com/questions/6223572 / - person Ravindra Bagale; 05.12.2012
comment
давайте продолжим обсуждение в чате - person Rohit Jindal; 05.12.2012
comment
В последних версиях ADT файл build.properties не существует. Теперь файл ant.properties заменил build.properties. Мой файл ant.properties содержит только test.project.dir=C:\\Users\\USER\\newsdkworkspace\\stack_and test.android.library.source.dir=C: \\Пользователи\\ПОЛЬЗОВАТЕЛЬ\\newsdkworkspace\\stack_and\\libs - person Rohit Jindal; 05.12.2012
comment
Мои отчеты попадают в пакет внешнего jar, но все же покрытие кода Jar составляет 0%. - person Rohit Jindal; 06.12.2012