2014-02-17 1 views

ответ

3

Команда для запуска приборов из ADB оболочки:

adb shell am instrument -w com.android.vishal.project.test/android.test.InstrumentationTestRunner 

Android Код для запуска приборов от Android деятельности: -

startInstrumentation(new ComponentName("com.android.vishal.project.test", "android.test.InstrumentationTestRunner"), null, null); 

Примечание:

Другой метод,

Android Код для запуска инструментария (Android 2.3 до Android 4.1. 2)

String str_cmd = "adb shell am instrument -w com.android.vishal.project.test/android.test.InstrumentationTestRunner"; 
Runtime.getRuntime().exec(str_cmd); 

для Android 4.2 требует разрешения "android.permission.INJECT_EVENTS" & который разрешается только при применении системы. Пользовательское приложение не может использовать это разрешение из-за некоторых соображений безопасности.

так что вы не можете использовать Runtime.getRuntime().exec(str_cmd); для Android 4.2 и далее ...

Так что теперь работает метод:

startInstrumentation(new ComponentName("com.android.vishal.project.test", "android.test.InstrumentationTestRunner"), null, null); 

Выполнить эту команду от вашей деятельности.

Надеюсь, у вас есть решение.

Ответы на любые вопросы.

+0

Я получаю нулевой указатель -> (попытка вызвать виртуальный метод «недействительным android.app.UiAutomation.setOnAccessibilityEventListener (android.app.UiAutomation $ OnAccessibilityEventListener)» на нулевой ссылки на объект) когда я UIDevice. деЫпзЬапсе (InstrumentationRegistry.getInstrumentation()); после этого началоИнструментация, как предложено в ответе. Может кто-нибудь предположить, что я могу пропустить? Если нужно, я могу поделиться полной степенью –