Eclipse einrichten

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

  1. Führen Sie make einmal über die Befehlszeile aus. Dadurch werden externe Bibliotheken erstellt, die von den folgenden Projekten abhängig sind.
  2. Legen Sie die Klassenpfadvariable TRADEFED_ROOT unter Window > Preferences > Java > Build Path> Classpath Variables fest und verweisen Sie sie auf Ihr Tradefed-Quellstammverzeichnis
  3. Legen Sie die Pfadvariable TRADEFED_ROOT unter Window > Preferences > General > Workspace > Linked Resources fest und verweisen Sie sie auf Ihr Tradefed-Quellstammverzeichnis
  4. 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
    
  5. 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 .

  6. 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:

  1. Gehen Sie zu Fenster > Einstellungen > Java > Codestil .
  2. Importieren Sie unter Formatter die Datei android-formatting.xml .
  3. Importieren Sie unter Organisieren > Importe die Datei android.importorder .

Entfernen Sie nachgestellte Leerzeichen

Um Eclipse zu zwingen, alle nachfolgenden Leerzeichen zu entfernen:

  1. Gehen Sie zu Fenster > Einstellungen -> Java -> Editor -> Aktionen speichern .
  2. Dann „Additional Actions“ -> „Configure“ -> „Code“ > „Organizing tab“ -> „Formatter“ .
  3. Aktivieren Sie „Nachgestelltes Leerzeichen entfernen“ .
  4. 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:

  1. Starten Sie tradefed.sh mit dem Debug-Flag: TF_DEBUG=1 tradefed.sh
  2. 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 Port 10088 angeschlossen wird.
  3. Verbinden Sie sich mit dem Remote-Debugging von Eclipse über das Hauptmenü: Wählen Sie „Ausführen > Debug-Konfigurationen...“ aus.
  4. Wählen Sie im Popup-Dialogfeld im linken Menü die Option „Remote-Java-Anwendung“ aus.
  5. Klicken Sie in der Aktionsleiste auf das Symbol „Neue Startkonfiguration“ .
  6. Benennen Sie die Konfiguration nach Ihren Wünschen und wählen Sie Tradefederation als Projekt aus.
  7. Füllen Sie den Port mit der zuvor angegebenen Adresse.
  8. Wechseln Sie zur Registerkarte „Quelle“ und fügen Sie die Projekte „tradefederation“ und „google-tradefed“ zum Quellsuchpfad hinzu.
  9. 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:

  1. Starten Sie tradefed.sh mit dem Debug-Flag: TF_DEBUG=1 tradefed.sh
  2. Warten Sie, bis Sie die Eingabeaufforderung von JVM sehen: Listening for transport dt_socket at address: 10088 .
  3. jdb verbinden. Zum Beispiel von croot run:

    jdb -attach 10088 \
        -sourcepath tools/tradefederation/core/src:vendor/google_tradefederation/core/src
    
  4. Warten Sie auf die Verbindung und debuggen Sie los! Führen Sie man jdb aus, um weitere Hilfe zu erhalten.

Untersuchen Sie die Codeabdeckung

  1. Installieren Sie das Eclemma-Plugin .
  2. Gehen Sie zu Hilfe > Neue Software installieren und verweisen Sie den Assistenten auf: http://update.eclemma.org/
  3. Wählen Sie nach der Installation die Option Coverage As > JUnit- Test aus, um einen Code-Coverage-Lauf durchzuführen.