Android: Как установить Instrumentation APK на AVD на главном компьютере - PullRequest
6 голосов
/ 07 июля 2011

Я пытаюсь интегрировать тесты Android JUnit с нашими сборками Bamboo Ant.Я уже протестировал настройку локально и могу запустить тесты.

Но когда я попробовал ту же настройку на нашем сервере Bamboo, я получаю следующую ошибку при запуске тестов:

INSTRUMENTATION_STATUS: id=ActivityManagerService
INSTRUMENTATION_STATUS: Error=Unable to find instrumentation info for: ComponentInfo{com.synapticstuff.guitartabs/pl.polidea.instrumentation.PolideaInstrumentationTestRunner}
INSTRUMENTATION_STATUS_CODE: -1
android.util.AndroidException: INSTRUMENTATION_FAILED: com.synapticstuff.guitartabs/pl.polidea.instrumentation.PolideaInstrumentationTestRunner

Обратите внимание, что я использовал пользовательскую библиотеку для Instrumentation (http://code.google.com/p/the-missing-android-xml-junit-test-runner/),, чтобы я мог получить результаты теста JUNit xml и передать их в Bamboo.

Кроме того, агент построения, используемый всоздание сборки - это виртуальная машина Ubuntu, в которой нет графического интерфейса, поэтому мне нужно делать все через командную строку. AVD уже запущен на этой виртуальной машине.

Я столкнулся с той же проблемой, когда впервые запустилкоманда adb shell am instrument .. <snip> локально, и мне показалось странным, что она работала после запуска теста из Eclipse.

При просмотре журнала ошибок в статье Android Instrumentation Framework говорится, что

"Возможно, на вашем устройстве не установлен apk инструментария или что в файле манифеста указано неверное имя пакета."

, поэтому, возможно, инструментntation apk не установлен.

Итак, как мне установить apk инструментария на AVD?

Спасибо!

Ответы [ 6 ]

3 голосов
/ 08 февраля 2013

Вероятно, есть несколько ситуаций, которые могут вызвать эту ошибку, но я понял, что на эмуляторе не установлена ​​инструментированная версия тестового пакета. Документация немного скудная, но я не думаю, что есть «инструментальный APK», который вы устанавливаете на эмулятор (по крайней мере, я не смог найти такую ​​вещь); вы создаете тестовое приложение с включенным инструментарием. В любом случае, вот как я запускаю тесты из командной строки, используя ant, который теперь работает:

ant instrument install test

, и это также работает на Jenkins с помощью плагина эмулятора Android (https://wiki.jenkins -ci.org / display / JENKINS / Android + Emulator + Plugin ). Я нашел задачу прибора в документации по сборке командной строки здесь: http://developer.android.com/tools/building/building-cmdline.html.

2 голосов
/ 02 августа 2011

Возможна и другая причина: имя пакета неверно указано в файле манифеста.

Сначала проверьте имя пакета в файле манифеста проекта модульного теста!

1 голос
/ 04 апреля 2012

Вы можете решить эту проблему, если добавите в свой скрипт сборки:

adb install -r testproject/bin/testproject.apk

сначала проверьте, как называется apk-файл, потому что я до сих пор не понял, как муравей собираетсячтобы сделать это точно, но обычно он создается в каталоге bin .

См. также официальную документацию по Android.

1 голос
/ 12 сентября 2011

Я также один из немногих, кто скачал этот пользовательский InstrumentationTestRunner (http://code.google.com/p/the-missing-android-xml-junit-test-runner/)), и в настоящее время я застрял в этой проблеме! Я получаю то же сообщение об ошибке, к сожалению, я не знаю ответа на данный момент, но обновлю, когда найду что-нибудь полезное. В то же время я искал другие варианты, такие как Test Runner этого человека: http://www.alittlemadness.com/2010/07/14/android-testing-xml-reports-for-continuous-integration/

Существует также еще одно обсуждение, касающееся непрерывной интеграции: Как автоматически генерировать отчет о тестировании Android в HTML

0 голосов
/ 26 сентября 2013

Я столкнулся с этой проблемой при запуске моих тестов на старом виртуальном устройстве Android 1.5. После переключения на виртуальное устройство 2.3.3 проблема ушла. Я не знаю, связана ли эта проблема с устаревшей ОС виртуального устройства или с созданием старых инструментов Android SDK.

0 голосов
/ 10 декабря 2012

Я столкнулся с точно такой же проблемой при запуске сборки Android под Bamboo. Я обнаружил, что по какой-то причине элемент android:targetPackage в моем манифесте тестового проекта был неправильным. Это был пакет моего основного проекта, а не тестовый проект. По какой-то причине запуск при запуске тестов в Eclipse eveything работал нормально, но он прекратился, когда я попытался запустить ant-тест в командной строке. Метка контрольно-измерительных приборов гласит:

<instrumentation
    android:name="android.test.InstrumentationTestRunner"
    android:targetPackage="com.example.blah" />

Это было автоматически сгенерировано Eclipse при создании проекта. Я изменил это, чтобы читать:

<instrumentation
    android:name="android.test.InstrumentationTestRunner"
    android:targetPackage="com.example.blah.test" />

и вдруг все стало нормально.

...