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 :-)
Command to start instrumentation from adb shell :-
Android Code to start instrumentation from Android Activity :-
Note :
Other Method,
Android Code for start instrumentation (Android 2.3 to Android 4.1.2)
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 :
execute this command from your Activity.
Thanks.
This is actually not possible to do, the reason being is that to run instrumentation you need to it via ADB, adb has certain special privileges because of security and therefore can not be run on the phone (As with anything open source, it is of course possible but you would have to rewrite some android and then it would only work on phones you installed that on!).
May I ask your reason for doing this? If you really need to automate across applications your better choice might be to either us the new android ui test framework or to test only on the emulator and use something that runs on top of the view hierarchy because trying what you are currently is a dead end.