Der Test-Runner ist die Ausführungseinheit des Aufrufablaufs. Hier werden die Tests tatsächlich ausgeführt.
Schnittstellen
Testläufer werden über die IRemoteTest-Schnittstelle definiert. Diese bietet eine einfache run
-Methode, die implementiert werden kann und aufgerufen wird, wenn die Tests ausgeführt werden sollen.
Dies ermöglicht die einfachste Definition eines Testlaufs. In der Praxis benötigen Testautoren jedoch mehr Informationen, um ihre Tests richtig zu schreiben, in der Regel Build- und Geräteinformationen. Hier kommen die folgenden Schnittstellen ins Spiel.
Allgemein
Diese beiden Schnittstellen werden heute am häufigsten verwendet, da sie die grundlegenden Anforderungen der meisten Tests erfüllen.
- Mit IBuildReceiver kann der Test das
IBuildInfo
-Objekt abrufen, das im Schritt BuildProvider erstellt wurde und alle Informationen und Artefakte zur Testeinrichtung enthält. - Mit IDeviceTest kann TF das
ITestDevice
-Objekt empfangen, das das zu testende Gerät darstellt, und eine API für die Interaktion damit bereitstellen.
Erweitert
Es gibt zusätzliche Schnittstellen, die eine komplexere Interaktion zwischen dem Test-Harness und dem Test-Runner ermöglichen:
- ITestFilterReceiver, über den der Test nur eine Reihe von Filtern für bestimmte Tests erhält. Dies ist nützlich, wenn Sie einen Teil der Tests ausführen möchten.
- ITestCollector, mit dem ein Test-Runner die Tests nur als Trockenlauf ausführen kann, anstatt sie tatsächlich auszuführen. Dies ist hilfreich, um eine Liste aller Testfälle zu erstellen.
Vorhandene Testläufer
Es gibt bereits eine Vielzahl von Testläufern, einige für die wichtigsten Testtypen:
- AndroidJUnitTest / InstrumentationTest (mit AJUR auf der Geräteseite verknüpft)
- GTest (Geräte- und Hostseite) mit googletest library
- Host-gestützte Tests (Java-Tests, die auf dem Host ausgeführt werden und das Gerät von dort aus aufrufen)
- Reine Java-Einheitstests (unser Runner unterstützt beides)
- Python-Tests
- Google Benchmark-Tests mit Benchmark-Bibliothek
Neben den oben genannten gibt es eine große Anzahl benutzerdefinierter Testläufer, die für bestimmte Funktionstests verwendet werden, z. B. Boot-Tests.
Neuen Test-Runner schreiben
Weitere Informationen zum Schreiben eines neuen Test-Runners finden Sie im Abschnitt Tests schreiben.