How to see the Android Orchestrator log?

2019-01-20 08:33发布

问题:

I have a failing test in my suite and now I am using the Android Orchestrator, but all I get is this message:

Test instrumentation process crashed. Check com.something.something_detail.SomeActivityTest#testAddSucceeds_activityIsFinished.txt for details

I don't know how to access that file. Any help?

回答1:

You'll find them on the device under /data/data/android.support.test.orchestrator/files/.

To get them off the device via ADB (requires debugging enabled and either a rooted device or an emulator so you have root):

adb root
adb pull /data/data/android.support.test.orchestrator/files/

Non-root, AndroidX users can use:

adb shell run-as androidx.test.orchestrator cat /data/user_de/0/androidx.test.orchestrator/files/com.pkg.name#testName.txt


回答2:

My results show something slightly different than the other answers floating around SO.

Using Android Studio IDE

It seems that stock emulator images are basically rooted by default, except for images that support the Google Play Store. So try to run the failing test on a normal emulator and after you get the error I've been able to find the txt file through Android Studio's Device File Explorer tool.

Open the tool window and browse to /data/user_de/0/android.support.test.orchestrator/files/ and find your .txt file.

From here you can open the file or right-click to download it. No need to for any terminal adb root commands, etc.

Alternate method (command line)

If you insist on using adb and the command line then you must first:

adb root
adb pull /data/user_de/0/android.support.test.orchestrator/files/ [directory to save to]
adb unroot (optional)

Thoughts

Unfortunately if you were hoping for a stack trace or something useful in the .txt file you might be highly disappointed. All I found in my experience was something like:

INSTRUMENTATION_RESULT: shortMsg=Process crashed.
INSTRUMENTATION_CODE: 0

which of course is quite useless for debugging. :(

I'm also not sure if the file location differs for actual devices since all the other answers out there say the file is located at /data/data/... instead of /data/user_de/... which is what I have found for emulators.



回答3:

For anyone who still stumbles upon this, this Stack Overflow answer was helpful. Pulling the files off of the emulator I was running required running adb as root first.

adb root

and then

adb pull /data/data/android.support.test.orchestrator/files/


回答4:

For anyone using AndroidX Test Orchestrator, the path would change to

adb pull /data/data/androidx.test.orchestrator/files/

but, this command also found 0 files so I had to use

adb pull /data/user_de/0/androidx.test.orchestrator/