Z tej sekcji dowiesz się, jak przeprowadzić testy Federacji Handlu i wziąć w nich udział 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
- Przeprowadzanie testów funkcjonalnych
- Wykonywanie lokalnie niektórych weryfikacji TF przed przesłaniem
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ć test pojedynczego elementu w Eclipse, kliknij test 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 uruchamiać samodzielnie, ale testy funkcjonalne należy przeprowadzać za pomocą samej platformy Trade Federation. Wymagają one urządzenia z Androidem. Wszystkie testy funkcjonalne powinny być zgodne z konwencją nazewnictwa *FuncTest
.
Sprawdzanie wyników testów jednostkowych
Gdy uruchomisz funkcję run_tradefed_tests.sh
, testy jednostkowe opierają się na wszystkich częściach zestawu testowego, w tym niektórych błędach. Spowoduje to wyświetlenie w konsoli szczegółowych danych wyjściowych, w tym zrzutów stosu.
Ostateczne podsumowanie wyników wskaże, czy wystąpił błąd.
Przykład ostatecznego 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 (korzystające z dowolnego interfejsu API
ITestDevice
), definicja pakietu znajduje się wcom.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.
- Tworzenie federacji handlowej.
- Połącz urządzenie z Androidem z hostem.
- Uruchom:
tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
- Opcjonalnie wybierz urządzenie, dodając
--serial <serial no>
w sposób, w jaki 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 przed przesłaniem TF 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.