Führen Sie die folgenden Schritte aus, 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 wird.
Falls erforderlich, können Sie die Eclipse IDE für Java-Entwickler unter eclipse.org/downloads herunterladen.
Projekte erstellen
- 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 Variable „TRADEFED_ROOT“ in
Window > Preferences > Java > Build Path> Classpath Variables
fest und weisen Sie sie auf das Stammverzeichnis der TradeFed-Quelle hin. - Legen Sie die Pfadvariable TRADEFED_ROOT in
Window > Preferences > General > Workspace > Linked Resources
fest und verweisen Sie sie auf das Stammverzeichnis Ihrer Tradefed-Quelle Verwenden Sie den
File > Import...-> General > Existing Projects into workspace"
-Assistenten, 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 den Quellcode von
ddmlib
sehen möchten, können Sie den Quellcode aus einem nicht gebündelten Tools-Branch anhängen, z. B. /platform/tools/base/tools_r22/ddmlib/src/main/java/com/android/ddmlib/IDevice.java.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 in der vollständigen Quellstruktur der Plattform unter development/ide/eclipse
. Sie müssen also einen Plattformzweig wie main
auschecken, um diese Dateien zu erhalten:
/development/main/ide/eclipse/
Verwenden Sie in Eclipse die Voreinstellungsdateien, um den Formatierer automatisch auf den Android-Stilguide festzulegen. So gehts in Studio:
- Gehen Sie zu Fenster > Einstellungen > Java > Codestil.
- Importieren Sie unter Formatierer die Datei
android-formatting.xml
. - Importieren Sie die Datei
android.importorder
unter Verwalten > Importe.
Nachgestellte Leerzeichen entfernen
So erzwingen Sie, dass Eclipse alle nachgestellten Leerzeichen entfernt:
- Gehen Sie zu Fenster > Einstellungen -> Java -> Editor -> Aktionen speichern.
- Gehen Sie dann auf Zusätzliche Aktionen -> Konfigurieren -> Code -> Tab „Organisieren“ -> Formatierer.
- Setzen Sie ein Häkchen bei Trailing Whitespace Remove (Abschließende Leerzeichen entfernen).
- Klicken Sie auf Übernehmen und schließen.
Codestil prüfen
Wenn Sie eine Änderungsliste einreichen, wird ein automatischer Pre-Upload-Hook ausgeführt, um Ihr Codeformat zu prüfen: google-java-format
So können Sie Ihren Code gemäß dem gängigen Standard formatieren.
Fehler in Eclipse beheben
Wenn Sie TF-Code über einen Debugger in Eclipse ausführen möchten, empfiehlt es sich, zuerst einen Einheitentest für den betreffenden Code zu erstellen, da dies die einfachste und schnellste Möglichkeit ist, die Funktionalität zu testen.
Wenn Sie einen TF-Unit-Test debuggen möchten, klicken Sie einfach mit der rechten Maustaste darauf und wählen Sie Fehler beheben als > 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 > Konfigurationen für die Fehlerbehebung.
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 aber in Schritt 4 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ü Ausführen > Debug-Konfiguration auf und legen Sie in der Eclipse-Debug-Konfiguration auf dem Tab Argumente den Wert -- package <package to run> instrument
fest.
Remote-Debugging mit Eclipse
Führen Sie die folgenden Schritte aus, um eine über die tradefed.sh
-Befehlszeile gestartete Fehlerbehebung per Remotezugriff zu beheben:
- Starten Sie tradefed.sh mit dem Debug-Flag:
TF_DEBUG=1 tradefed.sh
- Warten Sie, bis die folgende Eingabeaufforderung von der JVM angezeigt wird:
Listening for transport dt_socket at address: 10088
. Das bedeutet, dass die JVM darauf wartet, dass der Debugger an Port10088
angehängt wird. - Über das Hauptmenü mit der Remote-Fehlerbehebung von Eclipse verbinden: Wählen Sie Ausführen > Konfigurationen zur Fehlerbehebung... aus.
- Wählen Sie im Pop-up-Dialogfeld im linken Menü Remote-Java-Anwendung aus.
- Klicken Sie in der Aktionsleiste auf das Symbol Neue Startkonfiguration.
- Geben Sie der Konfiguration einen Namen und wählen Sie tradefederation als Projekt aus.
- Geben Sie den Port mit der zuvor angegebenen Adresse an.
- Wechseln Sie zum Tab Quelle und fügen Sie dem Quellsuchpfad die Projekte tradefederation und google-tradefed hinzu.
- Klicken Sie auf Fehler beheben, um die Fehlerbehebungssitzung zu starten.
Der Debugger wird an den JVM-Prozess angehängt, der auf eingehende Verbindungen wartet, und im Terminal, in dem tradefed.sh
ausgeführt wird, wird die Eingabeaufforderung tf>
angezeigt.
Wenn Sie den Code im Debug-Modus schrittweise durchgehen möchten, legen Sie einen Haltepunkt in Eclipse fest und rufen Sie den Tradefed-Befehl (z.B. run <test>
) im Terminal auf. Wenn Sie beim Starten von TF etwas debuggen möchten, können Sie zuerst den Haltepunkt setzen und dann den Eclipse-Debugger anhängen.
TIPP: Wenn Sie einen alternativen Anschluss 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 Abstürze untersuchen müssen: Ändern Sie suspend=y
in suspend=n
in tradefed.sh
und starten Sie mit dem Debug-Flag. Die JVM wartet nicht, bis der Debugger angehängt wird. Sie können dies aber jederzeit tun, solange der Prozess noch ausgeführt wird.
Remote-Debugging mit JDB
Um den Java Debugger JDB zu verwenden, führen Sie die Schritte aus, die denen für Eclipse ähneln:
- Starten Sie
tradefed.sh
mit dem Debug-Flag:TF_DEBUG=1 tradefed.sh
- Warten Sie, bis die Eingabeaufforderung der JVM angezeigt wird:
Listening for transport dt_socket at address: 10088
. Verbinden Sie
jdb
. Führen Sie beispielsweise mit croot folgenden Befehl aus:jdb -attach 10088 \ -sourcepath tools/tradefederation/core/src:vendor/google_tradefederation/core/src
Warten Sie auf die Verbindung und beheben Sie die Fehlerbehebung. Führen Sie
man jdb
aus, um weitere Hilfe zu erhalten.
Codeabdeckung prüfen
- Installieren Sie das Eclemma-Plug-in.
- Gehen Sie zu Hilfe > Neue Software installieren und geben Sie als Ziel für den Assistenten Folgendes an: http://update.eclemma.org/
- Wählen Sie nach der Installation die Testoption Coverage As > JUnit aus, um einen Code-Coverage-Lauf durchzuführen.