So richten Sie Tradefed mit Eclipse ein:
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 wird.
Falls erforderlich, können Sie die Eclipse IDE for Java Developers unter eclipse.org/downloads herunterladen.
Projekte erstellen
- Führen Sie „make“ einmal über die Befehlszeile aus. Dadurch werden externe Bibliotheken erstellt, von denen die unten aufgeführten Projekte abhängen.
- Legen Sie die Klassenpfadvariable TRADEFED_ROOT in
Window > Preferences > Java > Build Path> Classpath Variables
fest und verweisen Sie damit auf das Tradefed-Quellstammverzeichnis. - Legen Sie die Pfadvariable TRADEFED_ROOT in
Window > Preferences > General > Workspace > Linked Resources
fest und verweisen Sie damit auf Ihr Tradefed-Quellstammverzeichnis. Verwenden Sie den
File > Import...-> General > Existing Projects into workspace"
-Assistenten, um diese Open-Source-Java-Projekte unter den folgenden Pfaden zu importieren: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 den
ddmlib
-Quellcode sehen möchten, hängen Sie optional den Quellcode aus einem nicht gebündelten Tools-Branch an, z. B. /platform/tools/base/tools_r22/ddmlib/src/main/java/com/android/ddmlib/IDevice.java.Optional: Wenn Sie auch die CTS-Harness-Projekte laden möchten, importieren Sie Folgendes:
test/suite_harness/common/util test/suite_harness/common/host-side/util test/suite_harness/common/host-side/tradefed
Automatische Formatierung
HINWEIS: Die erforderlichen Dateien befinden sich im vollständigen Quellbaum der Plattform unter development/ide/eclipse
. Sie müssen also einen Plattformzweig wie android-latest-release
auschecken, um diese Dateien zu erhalten:
/development/android16-release/ide/eclipse/
Verwenden Sie Einstellungsdateien in Eclipse, um den Formatierer automatisch auf den Android-Styleguide einzustellen. So gehts in YouTube Studio:
- Klicken Sie auf Window > Preferences > Java > Code Style (Fenster > Einstellungen > Java > Code Style).
- Importieren Sie unter Formatter (Formatierung) die Datei
android-formatting.xml
. - Importieren Sie unter Verwalten > Importe die Datei
android.importorder
.
Nachgestellte Leerzeichen entfernen
So erzwingen Sie, dass Eclipse alle nachgestellten Leerzeichen entfernt:
- Klicken Sie auf Window > Preferences > Java > Editor > Save Actions (Fenster > Einstellungen > Java > Editor > Aktionen speichern).
- Klicken Sie dann auf Zusätzliche Aktionen -> Konfigurieren -> Code > Tab „Organisieren“ -> Formatierung.
- Klicken Sie auf Remove Trailing Whitespace (Nachfolgende Leerzeichen entfernen).
- Klicken Sie auf Anwenden und schließen.
Codestil prüfen
Wenn Sie eine Änderungsliste einreichen, wird automatisch ein Pre-Upload-Hook ausgeführt, um das Codeformat zu prüfen: google-java-format
So wird Ihr Code gemäß dem gängigen Standard formatiert.
Eclipse debuggen
Wenn Sie TF-Code in Eclipse über einen Debugger ausführen möchten, sollten Sie zuerst einen Unittest für den betreffenden Code erstellen, da dies die einfachste und schnellste Methode ist, um die Funktionalität zu testen.
Um einen TF-Unit-Test zu debuggen, klicken Sie einfach mit der rechten Maustaste darauf und wählen Sie Debug As > JUnit test aus.
Wenn Sie einen TF-Funktionstest debuggen möchten, folgen Sie der Anleitung im vorherigen Abschnitt zum Ausführen eines Funktionstests, verwenden Sie aber das Menü Ausführen > Debug-Konfigurationen.
Wenn Sie das TF-Programm selbst debuggen möchten, folgen Sie beim Ausführen einer beliebigen Konfiguration der Anleitung im vorherigen Abschnitt zum Ausführen eines Funktionstests. Geben Sie in Schritt 4 jedoch die Befehlszeilenargumente für die Konfiguration an, die Sie ausführen möchten. Wenn Sie die Konfiguration „instrument“ debuggen möchten, rufen Sie das Menü Run > Debug configuration auf und legen Sie den Tab Arguments in der Eclipse-Debugkonfiguration auf -- package <package to run> instrument
fest.
Remote-Debugging mit Eclipse
So debuggen Sie eine Tradefed-Sitzung, die über die tradefed.sh
-Befehlszeile gestartet wurde, aus der Ferne:
- Starten Sie tradefed.sh mit dem Debugging-Flag:
TF_DEBUG=1 tradefed.sh
- Warten Sie, bis Sie diese Aufforderung von der JVM sehen:
Listening for transport dt_socket at address: 10088
. Das bedeutet, dass die JVM darauf wartet, dass der Debugger an Port10088
angehängt wird. - Mit der Remote-Debugging-Funktion von Eclipse anhängen: Wählen Sie im Hauptmenü Run > Debug Configurations... (Ausführen > Debugging-Konfigurationen...) aus.
- Wählen Sie im Pop-up-Dialogfeld im Menü auf der linken Seite Remote Java Application aus.
- Klicken Sie in der Aktionsleiste auf das Symbol New launch configuration (Neue Startkonfiguration).
- Geben Sie der Konfiguration einen Namen Ihrer Wahl und wählen Sie tradefederation als Projekt aus.
- Geben Sie den Port mit der zuvor angegebenen Adresse ein.
- Wechseln Sie zum Tab Quelle und fügen Sie die Projekte tradefederation und google-tradefed zum Quellsuchpfad hinzu.
- Klicken Sie auf Debuggen, um die Debugging-Sitzung zu starten.
Der Debugger wird an den JVM-Prozess angehängt, der auf Verbindungen wartet, und im Terminal, in dem tradefed.sh
ausgeführt wird, wird die Eingabeaufforderung tf>
angezeigt.
Wenn Sie Ihren Code im Debug-Modus schrittweise ausführen möchten, legen Sie in Eclipse einen Haltepunkt fest und rufen Sie Ihren Tradefed-Befehl (z.B. run <test>
) im Terminal auf. Wenn Sie während des TF-Starts etwas debuggen möchten, können Sie zuerst den Haltepunkt festlegen und dann den Eclipse-Debugger anhängen.
TIPP: Wenn Sie einen alternativen Port verwenden möchten, fügen Sie dem Befehl in Schritt 1 oben TF_DEBUG_PORT=nnn
hinzu. Sie können dies sogar in der Produktionsumgebung verwenden, wenn Sie mysteriöse Hängefehler untersuchen müssen: Ändern Sie suspend=y
in suspend=n
in tradefed.sh
und starten Sie mit dem Debug-Flag. Die JVM wartet nicht auf den Start des Debuggers. Sie können dies jedoch jederzeit tun, solange der Prozess noch ausgeführt wird.
Remote-Debugging mit JDB
Wenn Sie den Java-Debugger JDB verwenden möchten, gehen Sie ähnlich wie bei Eclipse vor:
- Starten Sie
tradefed.sh
mit dem Debugging-Flag:TF_DEBUG=1 tradefed.sh
- Warten Sie, bis die Eingabeaufforderung von JVM angezeigt wird:
Listening for transport dt_socket at address: 10088
. Mit
jdb
verbinden Zum Beispiel aus „croot run“:jdb -attach 10088 \ -sourcepath tools/tradefederation/core/src:vendor/google_tradefederation/core/src
Warten Sie, bis die Verbindung hergestellt ist, und legen Sie los! Führen Sie
man jdb
aus, um weitere Informationen zu erhalten.
Codeabdeckung untersuchen
- Installieren Sie das Eclemma-Plug-in.
- Gehen Sie zu Hilfe > Neue Software installieren und verweisen Sie den Assistenten auf: http://update.eclemma.org/
- Wählen Sie nach der Installation die Testoption Coverage As > JUnit aus, um eine Code-Coverage-Ausführung durchzuführen.