Я не могу использовать commend как «adb shell am instrument -e class testCase1 ...», пользовательское приложение не может использовать это разрешение из-за некоторых соображений безопасности.Как начать программный проект программно с помощью Android API? (укажите тестовый класс!)
0
A
ответ
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);
Выполнить эту команду от вашей деятельности.
Надеюсь, у вас есть решение.
Ответы на любые вопросы.
Я получаю нулевой указатель -> (попытка вызвать виртуальный метод «недействительным android.app.UiAutomation.setOnAccessibilityEventListener (android.app.UiAutomation $ OnAccessibilityEventListener)» на нулевой ссылки на объект) когда я UIDevice. деЫпзЬапсе (InstrumentationRegistry.getInstrumentation()); после этого началоИнструментация, как предложено в ответе. Может кто-нибудь предположить, что я могу пропустить? Если нужно, я могу поделиться полной степенью –