How to start Instrumentation project programmatically using Android Intent?

后端 未结 2 1288
青春惊慌失措
青春惊慌失措 2021-01-01 02:52

one way to start testcase is,

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

i want to start

2条回答
  •  天涯浪人
    2021-01-01 03:24

    Command to start instrumentation from adb shell :-

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

    Android Code to start instrumentation from Android Activity :-

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

    Note :

    Other Method,

    Android Code for start instrumentation (Android 2.3 to 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);
    

    for Android 4.2 it requires permission "android.permission.INJECT_EVENTS" & which is only allowed by System application. User application can not use this permission because of some security reasons.

    so you can not use Runtime.getRuntime().exec(str_cmd); for Android 4.2 onwards ...

    so now working method is :

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

    execute this command from your Activity.

    Thanks.

提交回复
热议问题