Как программно выполнять тестовые случаи UiAutomator в последних версиях Android

Код ниже работает нормально, когда я выполняю команду оболочки adb. Но если я пробовал с apk, это не работает. Любая помощь?

MainActivity.класс

public void onStart() {

    super.onStart();

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Bundle bundle = new Bundle();
            bundle.putString("Test", "value");

            try {
                startInstrumentation(new ComponentName("com.example.mypro.uiauto.test", "android.support.test.runner.AndroidJUnitRunner"),null, bundle);

            } catch (Exception e) {

            }
        }
    });


}

ПримерInstrumentedTest.class

@Test
public void pressHome() {

    UiDevice uiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
    uiDevice.pressHome();
}
1
0
436
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я попал в такую ​​же ситуацию в прошлом году в августе. Пока вы не можете запускать инструментальные тесты из APK. Вот ссылка Руководство для Android. Потому что в этом случае вы также можете получить доступ к пользовательскому интерфейсу других приложений. Это будет проблемой безопасности в ОС Android в целом, когда одно приложение открывает другое приложение и делает случайные вещи, которые представляют угрозу.

Вы можете выполнять инструментальные тесты либо через командную строку/терминал, либо только через студию Android. По ссылке, которой я поделился, есть столбец с заголовком «Запуск тестов UI Automator на устройстве или эмуляторе».

Другие вопросы по теме