I'm executing some tests in my Android device by using the following command:
adb shell am instrument -w package.name/android.test.runner.AndroidJUnitRunner
I can see the test progress and simple results through STDOUT. But, does this process also generates a results file inside the device (xml, html, etc)? If yes, where is it stored?
Thanks
If you are executing your tests using
AndroidTestOrchestrator
your XML test results are generated and stored inside the devicesstorage/emulated/0/odo/
directory. So they can be accessed using:adb pull storage/emulated/0/odo/
I'm not sure why this isn't mentioned anywhere in the documentation. This path is likely to be different for real devices, where I believe the results are outputted on the SDCARD somewhere.
No, it does not.
Report generation is generally handled at a higher layer than 'am instrument'. If you run your tests using Gradle, it should generate the report for you. I believe this is what Android Studio relies on as well.
If you must generate the report from the test itself, you can use a custom test runner. See this answer for one way to do it: http://www.stackoverflow.com/a/5574418/1999084
I had a similar problem (I wanted to have xml test reports for my Jenkins when it runs instrumentation tests on a device). I solved it by implementing the "android-xml-run-listener" (https://github.com/schroepf/TestLab/tree/master/android).
To use it simply add:
to your build.gradle (note the androidTest prefix - this will not add code to your production app!).
To use it, add:
to your am instrument command.
And to retrieve the XML report file, use: