Aby skonfigurować narzędzie Tradefed za pomocą Eclipse, wykonaj te czynności.
Utwórz osobny obszar roboczy do tworzenia aplikacji Trade Federation. Nie używaj obszaru roboczego, który jest już używany do tworzenia aplikacji na urządzenia z Androidem.
W razie potrzeby możesz pobrać środowisko Eclipse IDE dla programistów Java ze strony eclipse.org/downloads.
Tworzenie projektów
- Uruchom funkcję Make raz z wiersza poleceń. Spowoduje to utworzenie bibliotek zewnętrznych, na których opierają się projekty wymienione poniżej.
- Ustaw zmienną classpath TRADEFED_ROOT w pliku
Window > Preferences > Java > Build Path> Classpath Variables
i wskaż katalog źródeł tradefed. - Ustaw zmienną ścieżki TRADEFED_ROOT w pliku
Window > Preferences > General > Workspace > Linked Resources
i wskaż katalog źródeł tradefed. Użyj kreatora
File > Import...-> General > Existing Projects into workspace"
, aby przenieść te projekty Java open source do tych ścieżek:prebuilts/misc/common/ddmlib\* tools/loganalysis tools/loganalysis/tests tools/tradefederation/core tools/tradefederation/core/tests tools/tradefederation/contrib tools/tradefederation/core/remote platform_testing/libraries/health/runners/longevity/host platform_testing/libraries/annotations platform_testing/libraries/health/composers/host
Opcjonalnie, jeśli chcesz zobaczyć kod źródłowy
ddmlib
, dołącz kod źródłowy z gałęzi narzędzi niespakowanych, takiej jak /platform/tools/base/tools_r22/ddmlib/src/main/java/com/android/ddmlib/IDevice.java.Opcjonalnie, jeśli chcesz też zaimportować projekty wiązek CTS, zaimportuj:
test/suite_harness/common/util test/suite_harness/common/host-side/util test/suite_harness/common/host-side/tradefed
Automatyczne formatowanie
UWAGA: wymagane pliki znajdują się w obrębie development/ide/eclipse
w pełnym drzewie źródłowym platformy. Aby uzyskać te pliki, musisz sprawdzić gałąź platformy, np. main
:/development/main/ide/eclipse/
Aby automatycznie ustawić formatowanie zgodnie z wytycznymi dotyczącymi stylu Androida, użyj plików preferencji w Eclipse. Aby to zrobić w Studio:
- Kliknij Okno > Ustawienia > Java > Styl kodu.
- W sekcji Formatowanie zaimportuj plik
android-formatting.xml
. - W sekcji Uporządkuj > Importy zaimportuj plik
android.importorder
.
Usuń spacje na końcu ciągu.
Aby wymusić usunięcie całej spacji końcowej przez Eclipse:
- Kliknij Okno > Preferencje -> Java -> Edytor -> Zapisz działania.
- Następnie kliknij Dodatkowe czynności -> Konfiguruj -> Kod > karta Organizowanie -> Narzędzie formatowania.
- Zaznacz pole Usuń spacje na końcu.
- Kliknij Zastosuj i zamknij.
Sprawdź styl kodu
Gdy prześlesz listę zmian, uruchomi się automatyczny punkt zaczepienia wstępnego przesyłania, aby sprawdzić format kodu: google-java-format
Pomaga to sformatować kod zgodnie ze wspólnym standardem.
Debugowanie Eclipse
Jeśli chcesz uruchomić kod TF za pomocą debugera w Eclipse, zalecamy najpierw utworzenie testu jednostkowego dla danego kodu, ponieważ będzie to najprostszy i najszybszy sposób na sprawdzenie jego działania.
Aby debugować test jednostkowy TF, kliknij go prawym przyciskiem myszy i wybierz Debuguj jako > test JUnit.
Aby debugować test funkcjonalny TF, wykonaj instrukcje z poprzedniej sekcji dotyczące uruchamiania testu funkcjonalnego, ale użyj menu Uruchom > Konfiguracje debugowania.
Aby debugować sam program TF, podczas uruchamiania dowolnej konfiguracji postępuj zgodnie z instrukcjami z poprzedniej sekcji dotyczącymi uruchamiania testu funkcjonalnego, ale podaj argumenty wiersza poleceń dla konfiguracji, którą chcesz uruchomić w kroku 4. Aby debugować konfigurację „instrument”, przejdź do menu Uruchom > Konfiguracja debugowania i ustaw kartę Argumenty w konfiguracji debugowania Eclipse na -- package <package to run> instrument
.
Debugowanie zdalne za pomocą Eclipse
Aby zdalnie debugować sesję handlową rozpoczętą z poziomu wiersza poleceń tradefed.sh
, wykonaj te czynności:
- Uruchom tradefed.sh z flagą debugowania:
TF_DEBUG=1 tradefed.sh
- Zaczekaj, aż pojawi się ten komunikat JVM:
Listening for transport dt_socket at address: 10088
Oznacza to, że JVM czeka na debuggera, aby połączyć się przez port10088
. - Dołącz do debugowania zdalnego w Eclipse w menu głównym: wybierz Uruchom > Debuguj Konfiguracje….
- W wyskakującym okienku w menu po lewej stronie wybierz Zdalna aplikacja Java.
- Na pasku czynności kliknij ikonę Nowa konfiguracja uruchomienia.
- Nazwij konfigurację i wybierz federację jako projekt.
- Wypełnij port, używając adresu podanego wcześniej.
- Przejdź na kartę Źródło i dodaj do ścieżki wyszukiwania źródła projekty tradefederation i google-tradefed.
- Kliknij Debugowanie, aby rozpocząć sesję debugowania.
Debuger łączy się z procesem JVM nasłuchującym, a terminal działający w tradefed.sh
wyświetla prompt tf>
.
Aby przejrzeć kod w trybie debugowania, ustaw punkt przerwania w Eclipse i wywołaj polecenie Tradefed (np. run <test>
) w terminalu. Aby debugować cokolwiek podczas uruchamiania TF, możesz najpierw ustawić punkt przerwania, a potem podłączyć debuger Eclipse.
WSKAZÓWKA: aby użyć innego portu, dodaj TF_DEBUG_PORT=nnn
do polecenia w kroku 1 powyżej. Możesz go użyć nawet w środowisku produkcyjnym, jeśli natrafisz na tajemnicze błędy do zbadania: zmień suspend=y
na suspend=n
w tradefed.sh
i zacznij od flagi debugowania. JVM nie będzie czekać na przyłączenie debugera, ale możesz to zrobić w dowolnym momencie, o ile proces jest nadal uruchomiony.
Debugowanie zdalne za pomocą JDB
Aby korzystać z debugera JDB, wykonaj czynności podobne do tych w Eclipse:
- Uruchom
tradefed.sh
z flagą debugowania:TF_DEBUG=1 tradefed.sh
- Poczekaj, aż wyświetli się komunikat z JVM:
Listening for transport dt_socket at address: 10088
. Połącz z urządzeniem
jdb
. Na przykład z polecenia croot run:jdb -attach 10088 \ -sourcepath tools/tradefederation/core/src:vendor/google_tradefederation/core/src
Poczekaj na połączenie i zacznij debugować. Aby uzyskać dodatkową pomoc, uruchom
man jdb
.
Sprawdzanie pokrycia kodu
- Zainstaluj wtyczkę Eclemma.
- Wybierz Pomoc > Zainstaluj nowe oprogramowanie i wskaż w kreatorze adres: http://update.eclemma.org/
- Po zainstalowaniu wybierz opcję Pokrycie jako > JUnit, aby przeprowadzić testowanie pokrycia kodu.