2015-07-16 6 views
8

Ich schreibe einen kleinen Wrapper über Android UI Automator. Normalerweise können wir den Testfallstatus in der Konsole sehen. Kann ich darauf zugreifen und eigene Nachrichten hinzufügen? Ich habe versucht System.out.println. Aber es hat nicht funktioniert. Gibt es eine Möglichkeit, dies zu tun?Schreiben auf Android UI Automator Ausgabekonsole

+0

Was meinst du mit ‚UIAutomator Ausgabekonsole '? –

+0

In Android Studio zeigt UIAutomator das Testergebnis in der JUnit-Konsole an. Ich meinte, dass. – deltaaruna

+0

Hallo! Ich habe meine Antwort nach meinen Vorstellungen über Junit aktualisiert (obwohl ich das nicht verwende :)) –

Antwort

1

Wenn der Test von adb ausgeführt wird, ist die bevorzugte Art und Weise wird das Drucken auf logcat:

import android.util.Log; 

Log.d("My tag", "My log message"); 

Auf der anderen Seite, letzte Version von UIAutomator wird in Testklasse Umsetzung InstrumentationTestCase verwendet. Diese Klasse ist weit Vorfahre von junit.framework.Assert (http://developer.android.com/reference/junit/framework/Assert.html). Ich nehme an, Sie werden etwas Nützliches von seinen Methoden finden. Vielleicht ist Format-Methode, was Sie suchen.

+1

Dies geht zum Log cat log. Nicht an die UIAutomator-Konsole. – deltaaruna

+0

ist es nicht UIAutomator Protokolle. –

2

Sie können Instrumentation.sendStatus(..) Berichtsinformationen für die Konsole verwenden.

sendStatus (..) benötigt ein Bundle und einen Statuscode als Argumente. Es wird nicht lassen Sie eine Zeichenfolge direkt an die Konsole schreiben, aber jeder Schlüssel/Wert-Paar im Bundle wird wie folgt geschrieben werden:

INSTRUMENTATION_STATUS: key1=value1 
INSTRUMENTATION_STATUS: key2=value2 
INSTRUMENTATION_STATUS_CODE: -1 

Hinweis: Dies funktioniert nur, wenn Sie eine aktuelle verwenden Version von UiAutomator (2.0+). Die alte Version hat keinen Zugriff auf Instrumentation. Wenn Sie also Shell-basierten UiAutomator verwenden, ist es Zeit für ein Upgrade!

+1

können Sie einen Code snippit, wie dies in einem uiautomator Test implementiert werden kann –

0

Die Instrumentation.sendStatus(..) kann verwendet werden, um auf die uiautomator-Konsole zu schreiben.

Schnell Beispiel wird sein:

Bundle bundle = new Bundle(); 
    bundle.putString("MyResult","10"); 
    getAutomationSupport().sendStatus(0, bundle); 

Hoffnung ist das, was Sie suchen!

0

Wenn Sie Java print-Anweisung verwenden möchten, sollten Sie importieren:

import static java.lang.System.out; 

Nachdem Sie den Import zu tun, dann können Sie verwenden:

out.println("hello world"); 
Verwandte Themen