Dołącz testy jednostkowe i funkcjonalne

W tej sekcji dowiesz się, jak uruchamiać testy Trade Federation i w nich uczestniczyć po wprowadzeniu zmian w projekcie. Obejmuje to m.in.:

  • Gdzie dodać nowe klasy testów jednostkowych
  • Uruchamianie testów jednostkowych w Eclipse i poza środowiskiem IDE Eclipse
  • Gdzie dodawać testy funkcjonalne
  • Przeprowadzanie testów funkcjonalnych
  • Lokalne uruchamianie niektórych testów weryfikacyjnych TF

Dodawanie testów jednostkowych

W ramach Projektu Android Open Source (AOSP) dodaj klasę testów jednostkowych w tym miejscu: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.

Przeprowadzanie testów jednostkowych

Wszystkie testy jednostkowe i funkcjonalne AOSP dla 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.

Po utworzeniu możesz też uruchomić test jednostkowy z wiersza poleceń w drzewie źródłowym Tradefed, na przykład tak:tools/tradefederation/core/javatests/run_tradefed_tests.sh

Testy jednostkowe można wykonywać samodzielnie, ale testy funkcjonalne należy przeprowadzać za pomocą Trade Federation. Wymagają one urządzenia z Androidem. Wszystkie testy funkcjonalne powinny być zgodne z konwencją nazewnictwa *FuncTest.

Sprawdzanie wyników testów jednostkowych

Podczas uruchamiania polecenia run_tradefed_tests.sh testy jednostkowe sprawdzają wszystkie części platformy testowej, w tym niektóre warunki błędów. Wyświetli w konsoli szczegółowe dane wyjściowe, w tym zrzuty stosu.

Ostateczne podsumowanie wyników wskaże, czy wystąpiło niepowodzenie.

Przykładowe podsumowanie końcowe w konsoli:

12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]

Wszystkie testy powinny być zaliczone, więc jeśli w przypadku lokalnej zmiany wystąpi błąd, upewnij się, że testy zostały poprawione.

Dodawanie testów funkcjonalnych

  • Jeśli test funkcjonalny obejmuje urządzenie (korzysta z dowolnego interfejsu ITestDevice API), definicja pakietu znajduje się w com.android.tradefed.DeviceFuncTests. W przeciwnym razie definicja pakietu znajduje się w com.android.tradefed.FuncTests.

  • Jeśli metody testowe pasują do jednej z istniejących podklas pakietu, dodaj je tam. W przeciwnym razie możesz dodać nowe zajęcia do odpowiedniego pakietu.

  • W obu przypadkach po dodaniu testu do pakietu zostanie on automatycznie uruchomiony w potoku CI wraz z innymi testami funkcjonalnymi.

Przeprowadzanie testów funkcjonalnych

Aby uruchomić test funkcjonalny w Eclipse:

  1. Sprawdź, czy urządzenie jest połączone z hostem i czy adb oraz w razie potrzeby fastboot znajdują się w ścieżce PATH w Eclipse. Najłatwiej to zrobić, uruchamiając Eclipse z powłoki skonfigurowanej z odpowiednią ścieżką PATH.
  2. Utwórz aplikację w Javie. Uruchom konfigurację, klikając Uruchom > Uruchom konfiguracje.
  3. Ustaw projekt na tradefed-tests, a główną klasę na com.android.tradefed.command.CommandRunner.
  4. Uruchom m tradefed-all.
  5. Na karcie Arguments (Argumenty) podaj te argumenty wiersza poleceń: host --class <full path of test class to run>
  6. Kliknij Uruchom.

Aby uruchamiać testy funkcjonalne poza Eclipse.

  1. Budowanie Federacji Handlowej.
  2. Połącz urządzenie z Androidem z hostem.
  3. Uruchom: tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
  4. Opcjonalnie możesz wybrać urządzenie, dodając --serial <serial no>, tak jak pojawia się ono w wyniku działania polecenia adb devices.

Uruchamianie testów wstępnych TF w przypadku zmian lokalnych

Jeśli chcesz uruchomić test w podobny sposób jak w przypadku wstępnego przesyłania TF, użyj tego polecenia:

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

Spowoduje to uruchomienie wszystkich testów wstępnych TF na lokalnie utworzonej wersji TF, aby pomóc Ci sprawdzić, czy Twoja zmiana nie powoduje niepowodzenia żadnych testów.

Testy wstępne TF to nadzbiór testów jednostkowych opisanych powyżej, ale ich uruchomienie trwa dłużej. Dlatego zalecamy uruchamianie testów jednostkowych podczas tworzenia kodu w celu szybszej weryfikacji oraz uruchamianie testów przed przesłaniem przed przesłaniem CL.