Uruchamiający test to jednostka wykonania przepływu wywołania. To właśnie tam są wykonywane testy.
Interfejsy
Uruchamiacze testów są definiowane za pomocą interfejsu IRemoteTest, który udostępnia prostą metodę run
do implementacji, która zostanie wywołana podczas uruchamiania testów.
Umożliwia to najprostszą definicję przeprowadzenia testu. W praktyce jednak do prawidłowego napisania testów autorzy testów będą potrzebować więcej informacji, zazwyczaj informacji o kompilacji i urządzeniu. Właśnie w takich sytuacjach przydają się te interfejsy.
Podstawowe
Te 2 interfejsy są obecnie najczęściej używane, ponieważ spełniają podstawowe potrzeby większości testów.
- IBuildReceiver
pozwala testowi uzyskać obiekt
IBuildInfo
utworzony na etapie build provider, zawierający wszystkie informacje i elementy związane z konfiguracją testu. - IDeviceTest umożliwia TF otrzymanie obiektu
ITestDevice
, który reprezentuje testowane urządzenie, oraz udostępnia interfejs API do interakcji z tym urządzeniem.
Zaawansowane
Istnieją dodatkowe interfejsy, które umożliwiają bardziej złożoną interakcję między narzędziem testowym a programem do uruchamiania testów:
- ITestFilterReceiver, który umożliwia testowi otrzymywanie zestawu filtrów tylko do uruchamiania określonych testów. Jest to przydatne podczas uruchamiania podzbioru testów.
- ITestCollector, który umożliwia narzędziu do testowania tylko symulowanie testów zamiast ich rzeczywistego wykonywania. Jest to przydatne przy zbieraniu listy wszystkich przypadków testowych.
Istniejące narzędzia do testowania
Istnieje już wiele narzędzi do testowania, niektóre z nich obsługują główne typy testów:
- AndroidJUnitTest / InstrumentationTest (powiązane z AJUR po stronie urządzenia)
- GTest (po stronie urządzenia i hosta) z biblioteką googletest
- testy sterowane przez hosta (testy w Javie, które są wykonywane na hoście i tam wywołują urządzenie);
- Testy jednostek w czystej Javie (nasz Runner wykonuje oba rodzaje testów).
- Testy Pythona
- testy Google Benchmark z biblioteką testów porównawczych
Oprócz wymienionych wyżej istnieje wiele niestandardowych narzędzi do testowania. Służą one do specjalistycznych celów, np. do testowania funkcjonalności.
Pisanie nowego test runnera
Więcej wskazówek dotyczących tworzenia nowego narzędzia do testowania znajdziesz w sekcji poświęconej tworzeniu testów.