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(
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 |
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 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 |
|