Z tej sekcji dowiesz się, jak przeprowadzać testy Trade Federation i współtworzyć je po wprowadzeniu zmian w projekcie. Obejmuje to m.in.:
- Gdzie dodać nowe klasy testów jednostkowych
- Uruchamianie testów jednostkowych w Eclipse i poza Eclipse IDE
- Gdzie dodawać testy funkcjonalne
- Uruchamianie testów funkcjonalnych
- Wykonywanie niektórych weryfikacji TF przed przesłaniem lokalnie
Dodawanie testów jednostkowych
W ramach Projektu Android Open Source (AOSP) dodaj klasę testów jednostkowych w pliku: tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java
WAŻNE: dodanie nowych klas testów jednostkowych do tych lokalizacji spowoduje ich automatyczne uruchamianie przed przesłaniem bez dodatkowej konfiguracji.
Uruchamianie testów jednostkowych
Wszystkie testy jednostkowe i funkcjonalne AOSP dotyczące Trade Federation znajdują się w projekcie tools/tradefederation/core/tests
.
Aby uruchomić pojedynczy test jednostkowy w Eclipse, kliknij go prawym przyciskiem myszy i wybierz Uruchom jako > JUnit. Aby uruchomić wszystkie testy jednostkowe, uruchom pakiet com.android.tradefed.UnitTests.
Test jednostkowy możesz też uruchomić z wiersza poleceń w drzewie źródłowym Tradefed po kompilacji, na przykład:tools/tradefederation/core/javatests/run_tradefed_tests.sh
Testy jednostkowe można wykonywać samodzielnie, ale testy funkcjonalne należy przeprowadzać za pomocą samej platformy Trade Federation. Wymagają one urządzenia z Androidem. Wszystkie testy funkcjonalne powinny przestrzegać konwencji nazewnictwa *FuncTest
.
Sprawdzanie wyników testów jednostkowych
Podczas uruchamiania run_tradefed_tests.sh
testy jednostkowe sprawdzają wszystkie części testu, w tym niektóre warunki błędów. Wyświetli on szczegółowe dane wyjściowe w konsoli, w tym ścieżki stosu.
Ostateczne podsumowanie wyników wskaże, czy wystąpił błąd.
Przykład podsumowania w Konsoli:
12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]
Wszystkie testy muszą być pozytywne, więc jeśli wystąpi jakikolwiek błąd w przypadku zmian lokalnych, sprawdź, czy testy zostały naprawione.
Dodawanie testów funkcjonalnych
Jeśli test funkcjonalny obejmuje urządzenie (korzysta z dowolnego interfejsu API
ITestDevice
), definicja zestawu znajduje się w plikucom.android.tradefed.DeviceFuncTests
. W przeciwnym razie definicja pakietu znajduje się w plikucom.android.tradefed.FuncTests
.Jeśli metody testów można umieścić w jednej z dostępnych podklas zestawu, dodaj je tam. W przeciwnym razie możesz dodać nową klasę do odpowiedniego pakietu.
W obu przypadkach, gdy dodasz test do zestawu, zostanie on automatycznie uruchomiony w potoku CI razem z innymi testami funkcjonalnymi.
Przeprowadzanie testów funkcjonalnych
Aby uruchomić test funkcjonalny w Eclipse:
- Upewnij się, że urządzenie jest połączone z hostem i że
adb
oraz (w razie potrzeby)fastboot
znajdują się w ścieżce Eclipse. Najłatwiej jest uruchomić Eclipse z poziomu powłoki z odpowiednim PATH. - Utwórz aplikację w Javie. Uruchom konfigurację, klikając Uruchom > Uruchom konfiguracje.
- Ustaw projekt na
tradefed-tests
, a klasę główną nacom.android.tradefed.command.CommandRunner
. - Uruchom
m tradefed-all
. - Na karcie Argumenty podaj te argumenty wiersza poleceń:
host --class <full path of test class to run>
- Kliknij Uruchom.
Aby przeprowadzić testy funkcjonalne poza Eclipse.
- Budowanie Federacji Handlowej.
- Podłącz urządzenie z Androidem do hosta.
- Uruchom:
tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
- Opcjonalnie wybierz urządzenie, dodając
--serial <serial no>
w postaci, w jakiej występuje w wyjściu funkcjiadb devices
.
Przeprowadzanie testów TF przed przesłaniem na podstawie zmian lokalnych
Jeśli chcesz uruchomić proces podobny do procesu przesyłania do TF, użyj tego polecenia:
tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh
Spowoduje to uruchomienie wszystkich testów TF przed przesłaniem na Twoim lokalnie skompilowanym TF, aby pomóc Ci sprawdzić, czy wprowadzona zmiana nie powoduje niepowodzenia żadnego testu.
Testy TF przed przesłaniem to superzbiór powyższych testów jednostkowych, ale ich wykonanie jest wolniejsze. Dlatego zalecamy uruchamianie testów jednostkowych podczas tworzenia, aby przyspieszyć weryfikację, oraz uruchamianie testów przed przesłaniem, zanim prześlesz CL.