Ошибки Android, emma, ant и ant - PullRequest
       30

Ошибки Android, emma, ant и ant

0 голосов
/ 09 июня 2011

Я работаю с кодом Android, созданным другими разработчиками, и они попросили меня использовать метрики покрытия кода для него.Это Android 2.3.3, и они используют муравей для своих файлов сборки.Я работаю на Ubuntu, в то время как другие разработчики работают на Windows / Mac.

Если я оставлю файл SDK / tools / lib / ant / main_rules.xml в одиночку, я обнаружу ошибку, описанную на странице sourceforge Эммы: класс, необходимый для класса com.vladium.emma.emmajavaTask, не может бытьнайдено: org / apache / tools / ant / taskdefs / Java "

Это, по-видимому, связано с наличием в каталоге lib как emma_ant.jar, так и emma.jar. Нет необходимости упоминать emma_device.jar.

Если я закомментирую строку в поисках emma.jar, я смогу построить проект, однако, когда придет время создать тестовый проект для получения инструментированного кода, выполнение команды "Мукированное покрытие" вернет

Problem: failed to create task or type emma
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.

Это оставляет меня в тупике. Кажется, он ищет файл emma_properties.config, но, похоже, он находится только в emma.jar, который закомментирован ...

Мне кажется, что яЯ иду по кругу и ничего не получаю. Любая помощь приветствуется.

Ответы [ 2 ]

1 голос
/ 09 июня 2011

Я не думаю, что есть простой способ получить покрытие EMMA с помощью ant, но это не так сложно, используя make. Прежде всего вам нужно установить

EMMA_INSTRUMENT=true

в вашей среде, чтобы создать инструментированную сборку, затем собрать приложение и тесты с помощью make, а затем запустить инструментарий с

-e coverage 'true'

<бесстыдной продвижение>

Моя будущая книга, Руководство по тестированию приложений Android , содержит пошаговый пример использования этой техники для получения отчетов о покрытии, таких как: EMMA coverage

</ бесстыдной продвижение>

0 голосов
/ 09 июня 2011

Рассмотрим ответ на этот случай "попытаться сделать слишком много, не понимая последствий".

На странице sourceforge EMMA рекомендуется установить emma.jar в качестве расширения JRE.Если вы сделаете это, у вас возникнут конфликты с инструментами SDK ant.Самым безопасным является игнорирование отдельной сборки EMMA sourceforge и просто использование того, что дает вам SDK.Инструкции по его запуску можно найти по адресу http://developer.android.com в разделе тестирования.

...