Befolgen Sie diese Schritte, um Tradefed mit Eclipse einzurichten.
Erstellen Sie einen separaten Arbeitsbereich für die Entwicklung von Trade Federation. Verwenden Sie keinen Arbeitsbereich, der bereits für die Entwicklung von Android-Geräten verwendet wurde.
Bei Bedarf können Sie die Eclipse-IDE für Java-Entwickler herunterladen von: eclipse.org/downloads
Erstellen Sie Projekte
- Führen Sie make einmal über die Befehlszeile aus. Dadurch werden externe Bibliotheken erstellt, die von den folgenden Projekten abhängig sind.
- Legen Sie die Klassenpfadvariable TRADEFED_ROOT unter
Window > Preferences > Java > Build Path> Classpath Variables
fest und verweisen Sie sie auf Ihr Tradefed-Quellstammverzeichnis - Legen Sie die Pfadvariable TRADEFED_ROOT unter
Window > Preferences > General > Workspace > Linked Resources
fest und verweisen Sie sie auf Ihr Tradefed-Quellstammverzeichnis Verwenden Sie den Assistenten
File > Import...-> General > Existing Projects into workspace"
um diese Open-Source-Java-Projekte unter den folgenden Pfaden einzubinden: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
Wenn Sie
ddmlib
Quellcode sehen möchten, hängen Sie optional den Quellcode aus einem entbündelten Tools-Zweig an, z. B. /platform/tools/base/tools_r22/ddmlib/src/main/java/com/android/ddmlib/IDevice.java .Wenn Sie möchten, dass auch die CTS-Harness-Projekte geladen werden, importieren Sie optional Folgendes:
test/suite_harness/common/util test/suite_harness/common/host-side/util test/suite_harness/common/host-side/tradefed
Automatisch formatieren
HINWEIS: Erforderliche Dateien befinden sich in development/ide/eclipse
im vollständigen Quellbaum der Plattform. Sie müssen also einen Plattformzweig wie main
auschecken, um diese Dateien zu erhalten: /development/main/ide/eclipse/
Verwenden Sie Einstellungsdateien in Eclipse, um den Formatierer automatisch auf den Android-Styleguide einzustellen. Gehen Sie dazu in Studio wie folgt vor:
- Gehen Sie zu Fenster > Einstellungen > Java > Codestil .
- Importieren Sie unter Formatter die Datei
android-formatting.xml
. - Importieren Sie unter Organisieren > Importe die Datei
android.importorder
.
Entfernen Sie nachgestellte Leerzeichen
Um Eclipse zu zwingen, alle nachfolgenden Leerzeichen zu entfernen:
- Gehen Sie zu Fenster > Einstellungen -> Java -> Editor -> Aktionen speichern .
- Dann „Additional Actions“ -> „Configure“ -> „Code“ > „Organizing tab“ -> „Formatter“ .
- Aktivieren Sie „Nachgestelltes Leerzeichen entfernen“ .
- Klicken Sie auf „Übernehmen und schließen“ .
Überprüfen Sie den Codestil
Beim Senden einer Änderungsliste wird ein automatischer Pre-Upload-Hook ausgeführt, um Ihr Codeformat zu überprüfen: google-java-format
Dies hilft bei der Formatierung Ihres Codes gemäß dem gemeinsamen Standard.
Eclipse debuggen
Wenn Sie TF-Code über einen Debugger in Eclipse ausführen möchten, empfiehlt es sich, zunächst einen Komponententest für den betreffenden Code zu erstellen, da dies der einfachste und schnellste Weg ist, die Funktionalität auszuprobieren.
Um einen TF-Unit-Test zu debuggen, klicken Sie einfach mit der rechten Maustaste darauf und wählen Sie Debuggen als > JUnit-Test .
Um einen TF-Funktionstest zu debuggen, befolgen Sie die Anweisungen im vorherigen Abschnitt zum Ausführen eines Funktionstests, verwenden Sie jedoch das Menü „Ausführen“ > „Konfigurationen debuggen“ .
Um das TF-Programm selbst zu debuggen, wenn Sie eine beliebige Konfiguration ausführen, befolgen Sie die Anweisungen im vorherigen Abschnitt zum Ausführen eines Funktionstests, geben Sie jedoch die Befehlszeilenargumente für die Konfiguration an, die Sie in Schritt 4 ausführen möchten. Um also die „Instrument“-Konfiguration zu debuggen, Gehen Sie zum Menü „Ausführen“ > „Debug-Konfiguration“ und stellen Sie die Registerkarte „Argumente“ in der Eclipse-Debug-Konfiguration auf -- package <package to run> instrument
ein.
Remote-Debug mit Eclipse
Befolgen Sie diese Schritte, um eine über die Befehlszeile tradefed.sh
gestartete Tradefed-Sitzung remote zu debuggen:
- Starten Sie tradefed.sh mit dem Debug-Flag:
TF_DEBUG=1 tradefed.sh
- Warten Sie, bis Sie diese Eingabeaufforderung von der JVM sehen:
Listening for transport dt_socket at address: 10088
Dies bedeutet, dass die JVM darauf wartet, dass der Debugger an Port10088
angeschlossen wird. - Verbinden Sie sich mit dem Remote-Debugging von Eclipse über das Hauptmenü: Wählen Sie „Ausführen > Debug-Konfigurationen...“ aus.
- Wählen Sie im Popup-Dialogfeld im linken Menü die Option „Remote-Java-Anwendung“ aus.
- Klicken Sie in der Aktionsleiste auf das Symbol „Neue Startkonfiguration“ .
- Benennen Sie die Konfiguration nach Ihren Wünschen und wählen Sie Tradefederation als Projekt aus.
- Füllen Sie den Port mit der zuvor angegebenen Adresse.
- Wechseln Sie zur Registerkarte „Quelle“ und fügen Sie die Projekte „tradefederation“ und „google-tradefed“ zum Quellsuchpfad hinzu.
- Klicken Sie auf Debug, um die Debugging-Sitzung zu starten.
Der Debugger stellt eine Verbindung zum lauschenden JVM-Prozess her und das Terminal, auf dem tradefed.sh
ausgeführt wird, zeigt die Eingabeaufforderung tf>
an.
Um Ihren Code im Debug-Modus schrittweise durchzugehen, legen Sie einen Haltepunkt in Eclipse fest und rufen Sie Ihren Tradefed-Befehl auf (z. B. run <test>
) im Terminal. Um beim TF-Start irgendetwas zu debuggen, können Sie zuerst den Haltepunkt festlegen und dann den Eclipse-Debugger anhängen.
TIPP: Um einen alternativen Port zu verwenden, fügen Sie TF_DEBUG_PORT=nnn
zum Befehl in Schritt 1 oben hinzu. Sie können dies sogar in einer Produktionsumgebung verwenden, wenn Sie mysteriöse Hang-Bugs untersuchen müssen: Ändern Sie suspend=y
in suspend=n
in tradefed.sh
und beginnen Sie mit dem Debug-Flag. Die JVM wartet nicht auf die Verbindung des Debuggers, Sie können dies aber jederzeit tun, solange der Prozess noch läuft.
Remote-Debug mit JDB
Um die Java Debugger JDB zu verwenden, befolgen Sie die Schritte, die denen für Eclipse ähneln:
- Starten Sie
tradefed.sh
mit dem Debug-Flag:TF_DEBUG=1 tradefed.sh
- Warten Sie, bis Sie die Eingabeaufforderung von JVM sehen:
Listening for transport dt_socket at address: 10088
. jdb
verbinden. Zum Beispiel von croot run:jdb -attach 10088 \ -sourcepath tools/tradefederation/core/src:vendor/google_tradefederation/core/src
Warten Sie auf die Verbindung und debuggen Sie los! Führen Sie
man jdb
aus, um weitere Hilfe zu erhalten.
Untersuchen Sie die Codeabdeckung
- Installieren Sie das Eclemma-Plugin .
- Gehen Sie zu Hilfe > Neue Software installieren und verweisen Sie den Assistenten auf: http://update.eclemma.org/
- Wählen Sie nach der Installation die Option Coverage As > JUnit- Test aus, um einen Code-Coverage-Lauf durchzuführen.