Der Test-Runner ist die Ausführungseinheit des Aufrufvorgangs. Hier werden die Tests tatsächlich ausgeführt.
Schnittstellen
Test-Runner werden über die IRemoteTest-Schnittstelle definiert, die eine einfache run
-Methode zur Implementierung bietet, die aufgerufen wird, wenn die Tests ausgeführt werden sollen.
So kann ein Testlauf am einfachsten definiert werden. In der Praxis benötigen Testentwickler jedoch weitere 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 abdecken.
- Mit IBuildReceiver kann der Test das im Schritt Build-Provider erstellte
IBuildInfo
-Objekt abrufen, das alle Informationen und Artefakte enthält, die sich auf die Testkonfiguration beziehen. - Mit IDeviceTest kann TF das
ITestDevice
-Objekt empfangen, das das zu testende Gerät darstellt, und eine API zur Interaktion mit dem Gerät bereitstellen.
Erweitert
Es gibt zusätzliche Schnittstellen, die eine komplexere Interaktion zwischen dem Testharness und dem Testrunner ermöglichen:
- ITestFilterReceiver, mit dem der Test eine Reihe von Filtern zum Ausführen bestimmter Tests empfangen kann. Dies ist nützlich, wenn Sie nur eine Teilmenge der Tests ausführen möchten.
- ITestCollector, mit dem ein Test-Runner Tests nur als Probelauf ausführen kann, anstatt sie tatsächlich auszuführen. Dies ist nützlich, um die Liste aller Testläufe zu erfassen.
Vorhandene Test-Runner
Es gibt bereits eine Vielzahl von Test-Runnern, einige für wichtige Testtypen:
- AndroidJUnitTest / InstrumentationTest (auf der Geräteseite mit AJUR verknüpft)
- GTest (Geräte- und Hostseite) mit der googletest-Bibliothek
- Hostgesteuerte Tests (Java-Tests, die auf dem Host ausgeführt werden und das Gerät von dort aus aufrufen)
- Pure Java-Einheitentests (unser Runner führt beide aus)
- Python-Tests
- Google-Benchmarktests mit der Benchmark-Bibliothek
Neben den oben genannten gibt es eine große Anzahl benutzerdefinierter Test-Runner, die für bestimmte Funktionstests, z. B. Boot-Tests, verwendet werden.
Neuen Test-Runner schreiben
Weitere Informationen zum Schreiben eines neuen Test-Runners finden Sie im Abschnitt zum Schreiben von Tests.