2015-11-24 1 views
6

Ich bin mit dem folgenden einige Tests in meinem Android-Gerät ausführen:Wie die Testergebnisse abzurufen, wenn Befehl "adb shell am Instrument"

adb shell am Instrument -w package.name/android .test.runner.AndroidJUnitRunner

Ich kann den Testfortschritt und einfache Ergebnisse durch STDOUT sehen. Aber generiert dieser Prozess auch eine Ergebnisdatei im Gerät (XML, HTML, etc)? Wenn ja, wo wird es gespeichert?

Dank

Antwort

5

Aber macht dieses Verfahren auch im Inneren des Gerätes (xml, html, etc.), um eine Ergebnisdatei erzeugt?

Nein, tut es nicht.

Die Berichterstellung wird im Allgemeinen auf einer höheren Ebene als "am Gerät" durchgeführt. Wenn Sie Ihre Tests mit Gradle ausführen, sollte der Bericht für Sie erstellt werden. Ich glaube, darauf setzt auch Android Studio.

Wenn Sie den Bericht aus dem Test selbst generieren müssen, können Sie einen benutzerdefinierten Test-Runner verwenden. Finden Sie diese Antwort für eine Möglichkeit: http://www.stackoverflow.com/a/5574418/1999084

+0

Gibt es eine Lösung/einen Ansatz, um die Testergebnisse besser darstellen zu können? Ich frage das, denn wenn ich die Tests über Android Studio durchführe, erzeugt es die Ausgabe der Junit-Tests in xml, html usw. – Marcelo

+1

Die Berichterstellung wird im Allgemeinen auf einer höheren Ebene als "am Instrument" durchgeführt. Wenn Sie Ihre Tests mit Gradle ausführen, sollte der Bericht für Sie erstellt werden. Ich glaube, darauf setzt auch Android Studio. –

+1

Wenn Sie den Bericht aus dem Test selbst generieren müssen, können Sie einen benutzerdefinierten Test-Runner verwenden.Siehe diese Antwort für eine Möglichkeit, es zu tun: http://stackoverflow.com/a/5574418/1999084 –

5

Ich hatte ein ähnliches Problem (ich wollte Xml Testberichte für meine Jenkins haben, wenn es Instrumententests auf einem Gerät ausführt). Ich habe es gelöst, indem ich den "android-xml-run-listener" (https://github.com/schroepf/TestLab/tree/master/android) implementiert habe.

Um es zu verwenden fügen Sie einfach:

androidTestCompile 'de.schroepf:android-xml-run-listener:0.1.3' 

zu Ihrem build.gradle (beachten Sie die androidTest Präfix - dies wird nicht Code in Ihre Produktion App hinzufügen!).

, es zu benutzen, fügen:

-e listener de.schroepf.androidxmlrunlistener.XmlRunListener 

zu Ihrem am Instrument Befehl.

Und die XML-Report-Datei abrufen möchten, verwenden:

adb pull /storage/emulated/0/Android/data/<your-app-package-name>/files/report.xml 
+0

Ich bin nicht in der Lage, die report.xml auf Android-Emulator 5.1.1-Gerät generiert zu sehen. .Können Sie bitte helfen? –

+0

hi @rupeshjain sieht aus wie auf älteren Android-Versionen das 'emulierte/0'-Verzeichnis existiert nicht ... Für mich musste ich'/storage/sdcard/Android/data/de.schroepf.demoapp/files' benutzen, um darauf zuzugreifen die Berichte auf einem 5.x-Emulator ... – toby

0

Wenn Sie Ihre Tests mit AndroidTestOrchestrator XML-Testergebnisse und in den Geräten storage/emulated/0/odo/ Verzeichnis gespeichert sind, erzeugt werden, ausgeführt wird. So können sie mit zugegriffen werden:

adb pull storage/emulated/0/odo/

Ich bin mir nicht sicher, warum dies nicht überall in der Dokumentation erwähnt. Dieser Pfad ist wahrscheinlich für reale Geräte unterschiedlich, wobei die Ergebnisse meiner Meinung nach irgendwo auf der SDCARD ausgegeben werden.