2016-04-20 2 views
4

Существует много тем/вопросов, связанных с этой проблемой в stackoverflow (например, Error=Unable to find instrumentation info for: ComponentInfo{ }) и другом веб-сайте, но то, что делает мою проблему отличной от других, - это я Я работаю над автоматизацией. Поэтому позвольте мне дать вам более подробную информацию.Android, Error = Невозможно найти информацию о приборе для: ComponentInfo {}

У меня нет проблем, когда я тестирую на локальной машине (я имею в виду мой ноутбук). Я могу запустить тестирование Espresso и пройти все тесты.

Теперь, я хочу запустить эти тесты на CI (Bitrise в моем случае). Я создаю и запускаю эмулятор. Я подтверждаю, что там нет проблем. Я следующий сценарий:

... 
# Check which instrumentation packages have been installed on your device, https://stackoverflow.com/a/23394559/513413 
echo "" 
echo "Check which instrumentation packages have been installed..." 
adb shell pm list instrumentation 

# Running tests 
echo "" 
echo "running test..." 
adb shell am instrument -w -r -e debug false -e class my.package.name.MyActivityTest my.package.name.test/android.support.test.runner.AndroidJUnitRunner 

Это мой выход из CI:

Check which instrumentation packages have been installed... 
instrumentation:com.android.emulator.smoketests/android.support.test.runner.AndroidJUnitRunner (target=com.android.emulator.smoketests) 
instrumentation:com.android.smoketest.tests/com.android.smoketest.SmokeTestRunner (target=com.android.smoketest) 
instrumentation:com.example.android.apis/.app.LocalSampleInstrumentation (target=com.example.android.apis) 
running test... 
INSTRUMENTATION_STATUS: id=ActivityManagerService 
INSTRUMENTATION_STATUS: Error=Unable to find instrumentation info for: ComponentInfo{my.package.name.test/android.support.test.runner.AndroidJUnitRunner} 
INSTRUMENTATION_STATUS_CODE: -1 
android.util.AndroidException: INSTRUMENTATION_FAILED: my.package.name.test/android.support.test.runner.AndroidJUnitRunner 
    at com.android.commands.am.Am.runInstrument(Am.java:1093) 
    at com.android.commands.am.Am.onRun(Am.java:371) 
    at com.android.internal.os.BaseCommand.run(BaseCommand.java:47) 
    at com.android.commands.am.Am.main(Am.java:100) 
    at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) 
    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:251) 

У меня есть следующие строки кода в defaultConfig из app.gradle файла:

testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner' 

меня android.support.test.runner.AndroidJUnitRunner под моим EditConfiguration, как вы видите в следующей ссылке.

enter image description here

Я предполагаю, что мой тест не потому, что у меня нет этой команды в эмуляторе моей КИ. Итак, мой вопрос заключается в том, как я могу добавить его через командную строку? Это возможно? Благодарю.

Обновление

Это мой полный сценарий.

#!/bin/bash 

# List of devices attached 
adb devices 

# List all *.apk files inside /bitrise/deploy path 
echo "List of all *.apk files in $BITRISE_DEPLOY_DIR" 
cd $BITRISE_DEPLOY_DIR && ls 

# Push and Install main apk file 
echo "" 
echo "Pushing main apk at $BITRISE_APK_PATH to /data/local/tmp/my.package.name and install it..." 
adb push $BITRISE_APK_PATH /data/local/tmp/my.package.name 
adb shell pm install -r "/data/local/tmp/my.package.name" 

# Push and Install Test Unaligned apk file 
echo "" 
echo "Pushing test unaligned apk at $BITRISE_DEPLOY_DIR/my-app-debug-unaligned.apk to /data/local/tmp/my.package.name.test and install it..." 
adb push $BITRISE_DEPLOY_DIR/my-app-debug-unaligned.apk /data/local/tmp/my.package.name.test 
adb shell pm install -r "/data/local/tmp/my.package.name.test" 

# Check which instrumentation packages have been installed on your device, https://stackoverflow.com/a/23394559/513413 
echo "" 
echo "Check which instrumentation packages have been installed..." 
adb shell pm list instrumentation 

# Running tests 
echo "" 
echo "switch directory to $BITRISE_SOURCE_DIR" 
cd $BITRISE_SOURCE_DIR 
echo "running test..." 
adb shell am instrument -w -r -e debug false -e class my.package.name.path.MinHappyPathTest my.package.name.path/android.support.test.runner.AndroidJUnitRunner 

ответ

1

Вы должны установить (ADB установить) и приложения APK и тест APK (это разные APK) перед запуском "ADB оболочки утра инструмент".

+0

Спасибо, я только что обновил свой вопрос с полным сценарием. Я переместил эти два файла apk. – Hesam

 Смежные вопросы

  • Нет связанных вопросов^_^