Uwzględnij testy jednostkowe i funkcjonalne

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ę w com.android.tradefed.DeviceFuncTests. W przeciwnym razie definicja pakietu znajduje się w pliku com.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:

  1. 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.
  2. Utwórz aplikację w Javie. Uruchom konfigurację, klikając Uruchom > Uruchom konfiguracje.
  3. Ustaw projekt na tradefed-tests, a klasę główną na com.android.tradefed.command.CommandRunner.
  4. Uruchom m tradefed-all.
  5. Na karcie Argumenty podaj te argumenty wiersza poleceń: host --class <full path of test class to run>
  6. Kliknij Uruchom.

Aby przeprowadzić testy funkcjonalne poza Eclipse.

  1. Tworzenie federacji handlowej.
  2. Połącz urządzenie z Androidem z hostem.
  3. Uruchom: tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
  4. Opcjonalnie wybierz urządzenie, dodając --serial <serial no> w sposób, w jaki występuje w wyjściu funkcji adb 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.