UiAutomatorRunner

public class UiAutomatorRunner
extends Object implements IRemoteAndroidTestRunner

java.lang.Object
   ↳ com.android.tradefed.testtype.UiAutomatorRunner


Führt UI Automator-Tests auf dem Gerät aus und meldet die Ergebnisse. UI Automator-Tests sind spezielle Test-Runner zum Ausführen von UI-Automatisierungstests, die das UI Automator-Framework verwenden. Der Test-Runner auf dem Gerät emuliert das Ausgabeforamt von Instrumentierungstests, sodass vorhandener Parsing-Code in ddmlib und TF wiederverwendet werden kann. Im Grunde ist das ein Wrapper für diesen Befehl: adb shell uiautomator runtest (jar files) -e class (test classes) ...

Zusammenfassung

Öffentliche Konstruktoren

UiAutomatorRunner(IDevice remoteDevice, String[] jarPaths, String runnerPath)

UiAutomatorRunner zum Ausführen von UI-Automatisierungstests erstellen

Öffentliche Methoden

void addBooleanArg(String name, boolean value)

Fügt dem Instrumentierungsbefehl ein boolesches Argument hinzu.

void addInstrumentationArg(String name, String value)

Fügt dem Instrumentierungsbefehl ein Argument hinzu.

void cancel()

Fordert die Stornierung dieses Testlaufs an.

IRemoteAndroidTestRunner.CoverageOutput getCoverageOutputType()

Gibt den Typ der Testabdeckung zurück, die vom Runner erzeugt wird.

String getPackageName()

Gibt den Paketnamen der zuletzt hinzugefügten Java-Klasse zurück.

String getRunnerName()

Gibt den Standardklassennamen für UiAutomatorTestRunner zurück.

void removeInstrumentationArg(String name)

Entfernt ein zuvor hinzugefügtes Argument.

void run(ITestRunListener... listeners)

Führen Sie diesen Testlauf aus.

void run( listeners)

Führen Sie diesen Testlauf aus.

void setAdditionalTestOutputLocation(String additionalTestDataPath)

Legt den Speicherort der zusätzlichen Testausgabe fest, die auf den Host kopiert werden soll, bevor die Test-App deinstalliert wird.

void setClassName(String className)

Legt fest, dass nur Tests in dieser Klasse ausgeführt werden. Muss vor „run“ aufgerufen werden.

void setClassNames(String[] classNames)

Legt fest, dass nur Tests in den angegebenen Klassen ausgeführt werden sollen. Muss vor „run“ aufgerufen werden.

void setCoverage(boolean coverage)

Legt den Code-Coverage-Modus für diesen Testlauf fest.

void setCoverageReportLocation(String arg0)

Legt den Speicherort der generierten Abdeckungsberichte fest.

void setDebug(boolean debug)

Legt den Debug-Modus für diesen Testlauf fest.

void setIgnoreSighup(boolean value)

Legt die Option in uiautomator fest, SIGHUP zu ignorieren.

void setLogOnly(boolean logOnly)

Legt für diesen Testlauf den reinen Protokollierungsmodus fest. Die Testausführung wird übersprungen.

void setMaxTimeToOutputResponse(long timeout, TimeUnit unit)

Legt die maximal zulässige Zeit zwischen der Ausgabe des Shell-Befehls, mit dem die Tests auf den Geräten ausgeführt werden, fest.

void setMaxTimeout(long maxTimeout, TimeUnit unit)

Legt die maximal zulässige Zeit für den Abschluss der Instrumentierung fest.

void setMaxtimeToOutputResponse(int maxTimeToOutputResponse)

Diese Methode ist veraltet. Verwenden Sie stattdessen setMaxTimeToOutputResponse(long, TimeUnit).

void setMethodName(String className, String testName)

Legt fest, dass nur die angegebene Testmethode ausgeführt wird. Muss vor „run“ aufgerufen werden.

void setRunName(String runName)

Legen Sie einen benutzerdefinierten Namen für den Lauf fest, der am run() an ITestRunListener gemeldet werden soll.

Wenn nichts angegeben ist, wird der Paketname verwendet.

void setTestCollection(boolean b)

Legt für diesen Testlauf den Testsammlungsmodus fest.

void setTestPackageName(String packageName)

Legt fest, dass alle Tests im angegebenen Paket ausgeführt werden. Muss vor „run“ aufgerufen werden.

void setTestSize(IRemoteAndroidTestRunner.TestSize size)

Legt fest, dass nur Tests der angegebenen Größe ausgeführt werden.

Geschützte Methoden

String getRunCommand()
String getRunnerPath()

Öffentliche Konstruktoren

UiAutomatorRunner

public UiAutomatorRunner (IDevice remoteDevice, 
                String[] jarPaths, 
                String runnerPath)

UiAutomatorRunner zum Ausführen von UI-Automatisierungstests erstellen

Parameter
remoteDevice IDevice: das Remote-Gerät, mit dem interagiert werden soll, z. B. zum Ausführen von Tests oder zum Erfassen von Ergebnissen

jarPaths String: die Pfade zu JAR-Dateien, in denen sich UI Automator-Testläufe befinden. Die Pfade müssen absolut oder relativ zu /data/local/tmp/ auf dem Gerät sein.

runnerPath String: Alternativer uiautomator-Runner, der verwendet werden soll. Möglicherweise null. In diesem Fall wird die Standardeinstellung verwendet.

Öffentliche Methoden

addBooleanArg

public void addBooleanArg (String name, 
                boolean value)

Fügt dem Instrumentierungsbefehl ein boolesches Argument hinzu.

Parameter
name String: der Name des Arguments für das Instrumentierungs-Bundle

value boolean: der Wert des Arguments

addInstrumentationArg

public void addInstrumentationArg (String name, 
                String value)

Fügt dem Instrumentierungsbefehl ein Argument hinzu.

Muss vor „run“ aufgerufen werden. Wenn ein Argument mit dem angegebenen Namen bereits bereitgestellt wurde, wird sein Wert überschrieben.

Parameter
name String: der Name des Arguments für das Instrumentierungs-Bundle

value String: der Wert des Arguments

Abbrechen

public void cancel ()

Fordert die Stornierung dieses Testlaufs an.

getCoverageOutputType

public IRemoteAndroidTestRunner.CoverageOutput getCoverageOutputType ()

Gibt den Typ der Testabdeckung zurück, die vom Runner erzeugt wird. CoverageOutput ansehen.

Returns
IRemoteAndroidTestRunner.CoverageOutput

getPackageName

public String getPackageName ()

Gibt den Paketnamen der zuletzt hinzugefügten Java-Klasse zurück.

Returns
String

getRunnerName

public String getRunnerName ()

Gibt den Standardklassennamen für UiAutomatorTestRunner zurück.

Returns
String

removeInstrumentationArg

public void removeInstrumentationArg (String name)

Entfernt ein zuvor hinzugefügtes Argument.

Parameter
name String: der Name des zu entfernenden Arguments für das Instrumentierungs-Bundle

Homerun

public void run (ITestRunListener... listeners)

Führen Sie diesen Testlauf aus.

Convenience-Methode für ERROR(/#run(Collection)).

Parameter
listeners ITestRunListener: wartet auf Testergebnisse

Ausgabe
AdbCommandRejectedException
ShellCommandUnresponsiveException
TimeoutException

Homerun

public void run ( listeners)

Führen Sie diesen Testlauf aus.

Parameter
listeners : Sammlung von Listenern für Testergebnisse

Ausgabe
AdbCommandRejectedException
ShellCommandUnresponsiveException
TimeoutException

setAdditionalTestOutputLocation

public void setAdditionalTestOutputLocation (String additionalTestDataPath)

Legt den Speicherort der zusätzlichen Testausgabe fest, die auf den Host kopiert werden soll, bevor die Test-App deinstalliert wird. z.B. generierte Benchmarkberichte.

Parameter
additionalTestDataPath String

setClassName

public void setClassName (String className)

Legt fest, dass nur Tests in dieser Klasse ausgeführt werden. Muss vor „run“ aufgerufen werden.

Parameter
className String: Vollständig qualifizierter Klassenname (z. B. x.y.z)

setClassNames

public void setClassNames (String[] classNames)

Legt fest, dass nur Tests in den angegebenen Klassen ausgeführt werden sollen. Muss vor „run“ aufgerufen werden.

Wenn Sie mehr als eine Klasse angeben, ist ein InstrumentationTestRunner erforderlich, der die Syntax für mehrere Klassenargumente unterstützt.

Parameter
classNames String: Array mit vollständig qualifizierten Klassennamen (z. B. x.y.z)

setCoverage

public void setCoverage (boolean coverage)

Legt den Code-Coverage-Modus für diesen Testlauf fest.

Parameter
coverage boolean

setCoverageReportLocation

public void setCoverageReportLocation (String arg0)

Legt den Speicherort der generierten Abdeckungsberichte fest.

Parameter
arg0 String

setDebug

public void setDebug (boolean debug)

Legt den Debug-Modus für diesen Testlauf fest. Wenn „true“, wartet der Android-Test-Runner, bis ein Debugger angehängt wird, bevor er mit der Testausführung fortfährt.

Parameter
debug boolean

setIgnoreSighup

public void setIgnoreSighup (boolean value)

Legt die Option in uiautomator fest, SIGHUP zu ignorieren.

Parameter
value boolean: Das Signal wird ignoriert, wenn der Wert auf „true“ gesetzt ist.

setLogOnly

public void setLogOnly (boolean logOnly)

Legt für diesen Testlauf den reinen Protokollierungsmodus fest. Die Testausführung wird übersprungen.

Parameter
logOnly boolean

setMaxTimeToOutputResponse

public void setMaxTimeToOutputResponse (long timeout, 
                TimeUnit unit)

Legt die maximal zulässige Zeit zwischen der Ausgabe des Shell-Befehls, mit dem die Tests auf den Geräten ausgeführt werden, fest.

So kann ein Zeitlimit festgelegt werden, falls die Tests hängen bleiben und nie abgeschlossen werden. Dies unterscheidet sich von der normalen Zeitüberschreitung bei der Verbindung.

Standardmäßig wird kein Zeitlimit angegeben.

Parameter
timeout long: Die maximale Zeit, in der der Befehl keine Ausgabe erzeugen darf. Ein Wert von 0 bedeutet, dass die Methode unbegrenzt auf die Befehlsausgabe wartet (bis receiver die Ausführung abbricht) und nie eine Ausnahme auslöst.

unit TimeUnit: Einheiten für maxTimeToOutputResponse- und maxTimeout-Werte ungleich null.

setMaxTimeout

public void setMaxTimeout (long maxTimeout, 
                TimeUnit unit)

Legt die maximal zulässige Zeit für den Abschluss der Instrumentierung fest.

So kann ein Zeitlimit festgelegt werden, falls die Tests hängen bleiben und nie abgeschlossen werden. Dies unterscheidet sich von der normalen Zeitüberschreitung bei der Verbindung.

Standardmäßig wird kein Zeitlimit angegeben.

Parameter
maxTimeout long: Die maximale Zeit, in der der Befehl keine Antwort ausgeben darf. Ein Wert von 0 bedeutet, dass die Methode unbegrenzt auf die Befehlsausgabe wartet (bis receiver die Ausführung abbricht) und nie eine Ausnahme auslöst.

unit TimeUnit: Einheiten für maxTimeToOutputResponse- und maxTimeout-Werte ungleich null.

setMaxtimeToOutputResponse

public void setMaxtimeToOutputResponse (int maxTimeToOutputResponse)

Diese Methode wurde eingestellt.
Verwenden Sie stattdessen setMaxTimeToOutputResponse(long, TimeUnit).

Parameter
maxTimeToOutputResponse int

setMethodName

public void setMethodName (String className, 
                String testName)

Legt fest, dass nur die angegebene Testmethode ausgeführt wird. Muss vor „run“ aufgerufen werden.

Parameter
className String: Vollständig qualifizierter Klassenname (z. B. x.y.z)

testName String: Name der Methode

setRunName

public void setRunName (String runName)

Legen Sie einen benutzerdefinierten Namen für den Lauf fest, der am run() an ITestRunListener gemeldet werden soll.

Wenn nichts angegeben ist, wird der Paketname verwendet.

setTestCollection

public void setTestCollection (boolean b)

Legt für diesen Testlauf den Testsammlungsmodus fest. Bei „true“ wird die Testausführung übersprungen und alle entsprechenden Runner-Argumente festgelegt, die für eine erfolgreiche Testsammlung erforderlich sind.

Parameter
b boolean

setTestPackageName

public void setTestPackageName (String packageName)

Legt fest, dass alle Tests im angegebenen Paket ausgeführt werden. Muss vor „run“ aufgerufen werden.

Parameter
packageName String: Vollständig qualifizierter Paketname (z. B. x.y.z)

setTestSize

public void setTestSize (IRemoteAndroidTestRunner.TestSize size)

Legt fest, dass nur Tests der angegebenen Größe ausgeführt werden. Muss vor „run“ aufgerufen werden.

Parameter
size IRemoteAndroidTestRunner.TestSize: Die auszuführende TestSize.

Geschützte Methoden

getRunCommand

protected String getRunCommand ()

Returns
String

getRunnerPath

protected String getRunnerPath ()

Returns
String