How to start Instrumentation project programmatically using Android Intent?

0
0

one way to start testcase is,

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

i want to start this using Android code (with intent)

for example,

adb shell am start -n com.google.android.contacts/.ContactsActivity

we can run using Android intent by following method :-

Intent intent = new Intent(com.google.android.contacts, ContactsActivity.class);
startActivity
(intent);

But, how to run

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

by Android intent ?

Thanks for your help in advance 🙂

  • You must to post comments
0
0

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.

  • You must to post comments
Showing 1 result
Your Answer
Post as a guest by filling out the fields below or if you already have an account.
Name*
E-mail*
Website