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 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 weisen Sie sie auf das Stammverzeichnis der TradeFed-Quelle hin. Verwenden Sie den Assistenten
File > Import...-> General > Existing Projects into workspace"
, um diese Open-Source-Java-Projekte unter den folgenden Pfaden bereitzustellen: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 im development/ide/eclipse
im vollständigen Plattform-Quellbaum. 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.
Leerzeichen am Zeilenende 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 Preupload-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 in Eclipse über einen Debugger ausführen möchten, sollten Sie zuerst einen Unit-Test für den betreffenden Code erstellen. Dies ist die einfachste und schnellste Methode, um 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. Um Fehler in der "Instrument"-Konfiguration zu beheben, rufen Sie das Menü Run > Debug configuration (Ausführen > Debug-Konfiguration) auf und legen Sie in der Eclipse-Debug-Konfiguration den Tab Arguments (Argumente) auf -- 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.
- Benennen Sie die Konfiguration nach Bedarf und wählen Sie tradefederation als Projekt aus.
- Füllen Sie den Port mit der zuvor angegebenen Adresse aus.
- Wechseln Sie zum Tab Quelle und fügen Sie dem Quellsuchpfad die Projekte tradefederation und google-tradefed hinzu.
- Klicken Sie auf Debug, um die Debugging-Sitzung 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 Ihren Code im Debug-Modus durchlaufen möchten, legen Sie in Eclipse einen Haltepunkt fest und rufen Sie im Terminal den Tradefed-Befehl (z.B. run <test>
) 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-Fehlerbehebung mit JDB
Wenn Sie den Java-Debugger JDB verwenden möchten, gehen Sie so vor, wie für Eclipse beschrieben:
- 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 in croot Folgendes aus:jdb -attach 10088 \ -sourcepath tools/tradefederation/core/src:vendor/google_tradefederation/core/src
Warten Sie auf die Verbindung und beginnen Sie mit dem Debuggen. 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 Abdeckung als > JUnit aus, um eine Codeabdeckung durchzuführen.