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,
die eine einfache run Methode zur Implementierung bietet, die aufgerufen wird, wenn die
Tests ausgeführt werden sollen, definiert.
So kann ein Testlauf auf einfachste Weise 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 sind die folgenden Schnittstellen hilfreich.
Einfach
Diese beiden Schnittstellen werden heute am häufigsten verwendet, da sie die grundlegenden Anforderungen der meisten Tests erfüllen.
- IBuildReceiver
ermöglicht dem Test, das
IBuildInfoObjekt abzurufen, das im Schritt des Build Anbieters erstellt wurde und alle Informationen und Artefakte enthält, die mit der Testeinrichtung zusammenhängen. - IDeviceTest
ermöglicht TF den Empfang des
ITestDevice-Objekts, das das zu testende Gerät darstellt, und stellt eine API zur Interaktion damit bereit.
Erweitert
Es gibt zusätzliche Schnittstellen, die eine komplexere Interaktion zwischen dem Test-Harness und dem Test-Runner ermöglichen:
- ITestFilterReceiver, mit dem der Test eine Reihe von Filtern empfangen kann, um nur bestimmte Tests auszuführen. Dies ist nützlich, um eine Teilmenge der Tests auszuführen.
- ITestCollector, mit dem ein Test-Runner die Tests nur probeweise ausführen kann, anstatt sie tatsächlich auszuführen. Dies ist nützlich, um die Liste aller Testfälle zu erfassen.
Vorhandene Test-Runner
Es gibt bereits eine Vielzahl von Test-Runnern, einige für wichtige Testtypen:
- AndroidJUnitTest / InstrumentationTest (mit AJUR auf der Geräteseite verknüpft)
- GTest (Geräte- und Hostseite) mit der googletest-Bibliothek
- Hostgesteuerte Tests (Java Tests, die auf dem Host ausgeführt werden und von dort aus das Gerät aufrufen)
- Reine Java-Einheitentests (unser Runner führt beide aus)
- Python-Tests
- Google Benchmark Tests mit der Benchmark-Bibliothek
Neben den oben genannten gibt es eine große Anzahl benutzerdefinierter Test-Runner, die spezielle Zwecke für einige Funktionstests erfüllen, z. B. Boot-Tests.
Neuen Test-Runner schreiben
Weitere Informationen zum Schreiben eines neuen Test-Runners finden Sie im Abschnitt Tests schreiben.