Можно ли запускать тесты (AndroidJUnit4) в приложении для Android? Например, у меня есть этот тест, и я хотел бы добавить в свое приложение кнопку, которая запускала бы этот тест. Следует отметить, что этот фрагмент кода будет тестировать другое приложение (например, Chrome).
В настоящее время этот тест работает, если я запускаю его из Android Studio, но будет потрясающим, если он может запускаться из приложения.
@RunWith(AndroidJUnit4.class)
@SdkSuppress(minSdkVersion = 18)
public class ExampleInstrumentedTest {
private static final String TAG = "@@MyClassNameHere@@";
private static final long DEFAULT_TIMEOUT = 1000;
private UiDevice mDevice;
@Before
public void setUp() {
// Initialize UiDevice instance
final Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
mDevice = UiDevice.getInstance(instrumentation);
}
@Test
public void culebraGeneratedTest() throws Exception {
mDevice.pressHome();
mDevice.click(559, 1708);
mDevice.findObject(By.res("net.oneplus.launcher:id/all_apps_handle").clazz("android.widget.ImageView").text(Pattern.compile("")).pkg("net.oneplus.launcher")).clickAndWait(Until.newWindow(), DEFAULT_TIMEOUT);
(new UiScrollable(new UiSelector().className("android.support.v7.widget.RecyclerView").resourceId("net.oneplus.launcher:id/apps_list_view").index(2).packageName("net.oneplus.launcher"))).getChildByDescription(new UiSelector().description("Chrome"), "Chrome", true).click();
mDevice.swipe(500,1300,500,400,50);
mDevice.waitForIdle(1000);
}
}
Нет, он не получит необходимых разрешений, если вы запустите его из приложения. Вы должны начать тестирование аппаратуры с adb.
Представьте, если бы злонамеренные приложения могли делать то же самое с другими приложениями ...