Dołącz testy jednostkowe i funkcjonalne

W tej sekcji wyjaśniono, jak przeprowadzić testy Federacji Handlowej i wziąć w nich udział po wprowadzeniu zmian w projekcie. To zawiera:

  • Gdzie dodać nowe klasy testów jednostkowych
  • Uruchamianie testów jednostkowych w Eclipse i poza Eclipse IDE
  • Gdzie dodać testy funkcjonalne
  • Przeprowadzanie testów funkcjonalnych
  • Lokalnie uruchamiam część weryfikacji wstępnego przesłania TF

Dodaj testy jednostkowe

W projekcie Android Open Source Project (AOSP) dodaj klasę testów jednostkowych w: Tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java

WAŻNE: Dodanie nowych klas testów jednostkowych do tych lokalizacji spowoduje ich automatyczne uruchomienie przed przesłaniem, bez dodatkowej konfiguracji.

Uruchom testy jednostkowe

Wszystkie testy jednostkowe i funkcjonalne AOSP dla Federacji Handlowej znajdują się w projekcie tools/tradefederation/core/tests .

Aby uruchomić indywidualny test jednostkowy w środowisku Eclipse, wystarczy kliknąć test prawym przyciskiem myszy i wybrać opcję Uruchom jako > JUnit . Aby uruchomić wszystkie testy jednostkowe, uruchom pakiet com.android.tradefed.UnitTests .

Możesz także rozpocząć test jednostkowy z wiersza poleceń w drzewie źródłowym Tradefed po zbudowaniu, w następujący sposób: tools/tradefederation/core/javatests/run_tradefed_tests.sh

Testy jednostkowe można wykonać samodzielnie, ale testy funkcjonalne należy wykonać przy użyciu samej Federacji Handlowej; wymagają urządzenia z Androidem. Wszystkie testy funkcjonalne powinny być zgodne z konwencją nazewnictwa *FuncTest .

Sprawdź wyniki testów jednostkowych

Podczas uruchamiania run_tradefed_tests.sh testy jednostkowe ćwiczą wszystkie części wiązki testowej, łącznie z pewnymi warunkami błędów. Wydrukuje szczegółowe dane wyjściowe na konsoli, łącznie ze śladami stosu.

Ostateczne podsumowanie wyników wskaże, czy wystąpiła awaria, czy nie.

Przykładowe podsumowanie końcowe w konsoli:

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

Wszystkie testy są pomyślnie zaliczone, więc jeśli wystąpi jakakolwiek awaria na Twojej lokalnej zmianie, upewnij się, że testy zostały naprawione.

Dodaj testy funkcjonalne

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

  • Jeśli Twoje metody testowe mają sens, aby umieścić je w jednej z istniejących podklas pakietu, wolisz ją tam dodać. W przeciwnym razie możesz dodać nową klasę do odpowiedniego pakietu.

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

Uruchom testy funkcjonalne

Aby uruchomić test funkcjonalny z Eclipse:

  1. Upewnij się, że urządzenie jest podłączone do hosta i że adb i, jeśli to konieczne, fastboot znajdują się w ścieżce Eclipse. Najłatwiej to zrobić, uruchamiając Eclipse z poziomu konfiguracji powłoki z odpowiednią ścieżką PATH.
  2. Utwórz aplikację w Javie. Uruchom konfigurację poprzez 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. Podaj następujące argumenty wiersza poleceń na karcie Argumenty : host --class <full path of test class to run>
  6. Kliknij Uruchom .

Aby uruchomić testy funkcjonalne poza Eclipse.

  1. Zbuduj Federację Handlową.
  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> tak, jak pojawia się na wyjściu adb devices .

Przeprowadź wstępne testy przesyłania TF pod kątem lokalnych zmian

Jeśli chcesz działać w podobny sposób jak wstępne przesłanie TF, użyj tego:

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

Spowoduje to uruchomienie wszystkich testów wstępnego przesłania TF względem lokalnie zbudowanego TF, aby pomóc Ci sprawdzić, czy Twoja zmiana nie psuje żadnych testów.

Testy wstępne TF stanowią nadzbiór powyższych testów jednostkowych, ale ich uruchomienie jest wolniejsze. Dlatego zaleca się uruchomienie testów jednostkowych podczas programowania w celu szybszej walidacji i uruchomienie wstępnych zgłoszeń przed przesłaniem CL.