Uruchamiający test to jednostka wykonania przepływu wywołania. To tutaj są przeprowadzane testy.
Interfejsy
Testy są definiowane za pomocą interfejsu IRemoteTest, który udostępnia prostą metodę run
do wdrożenia, która będzie wywoływana podczas uruchamiania testów.
Umożliwia to najprostszą definicję przebiegu testu. W praktyce jednak osoby piszące testy potrzebują więcej informacji, aby prawidłowo je tworzyć. Zwykle są to informacje o kompilacji i urządzeniu. W tym przypadku przydatne są te interfejsy:
Podstawowe
Te 2 interfejsy są obecnie najczęściej używane, ponieważ zaspokajają podstawowe potrzeby większości testów.
- IBuildReceiver umożliwia testowi uzyskanie obiektu
IBuildInfo
utworzonego na etapie build provider zawierającego wszystkie informacje i artefakty związane z konfiguracją testu. - IDeviceTest umożliwia TF otrzymywanie obiektu
ITestDevice
, który reprezentuje testowane urządzenie, i udostępnia interfejs API do interakcji z nim.
Zaawansowane
Istnieją dodatkowe interfejsy, które umożliwiają bardziej złożoną interakcję między platformą testową a programem uruchamiającym testy:
- ITestFilterReceiver, która umożliwia testowi otrzymywanie zestawu filtrów do uruchamiania tylko określonych testów. Jest to przydatne podczas uruchamiania podzbioru testów.
- ITestCollector, która umożliwia uruchomienie testów bez ich wykonywania. Jest to przydatne do zbierania listy wszystkich przypadków testowych.
Istniejące narzędzia do uruchamiania testów
Istnieje wiele programów do uruchamiania testów, w tym niektóre dla głównych typów testów:
- AndroidJUnitTest / InstrumentationTest (powiązany z AJUR po stronie urządzenia)
- GTest (po stronie urządzenia i hosta) z biblioteką googletest
- Testy sterowane przez hosta (testy w języku Java, które są wykonywane na hoście i z niego wywołują urządzenie).
- Testy jednostkowe w czystej Javie (nasz program uruchamiający wykonuje oba rodzaje testów)
- Testy w Pythonie
- Testy porównawcze Google z biblioteką testów porównawczych
Oprócz wymienionych powyżej istnieje wiele niestandardowych programów do uruchamiania testów. Służą one do specjalistycznych celów w przypadku niektórych testów funkcjonalnych, np. testu rozruchu.
Pisanie nowego narzędzia do uruchamiania testów
Więcej wskazówek dotyczących pisania nowego narzędzia do uruchamiania testów znajdziesz w sekcji poświęconej pisaniu testów.