Eclipse einrichten

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

  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 Variable „TRADEFED_ROOT“ in Window > Preferences > Java > Build Path> Classpath Variables fest und weisen Sie sie auf das Stammverzeichnis der TradeFed-Quelle hin.
  3. Legen Sie die Pfadvariable TRADEFED_ROOT in Window > Preferences > General > Workspace > Linked Resources fest und verweisen Sie sie auf das Stammverzeichnis Ihrer Tradefed-Quelle
  4. 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
    
  5. 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.

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

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

Nachgestellte Leerzeichen entfernen

So erzwingen Sie, dass Eclipse alle nachgestellten Leerzeichen entfernt:

  1. Gehen Sie zu Fenster > Einstellungen -> Java -> Editor -> Aktionen speichern.
  2. Gehen Sie dann auf Zusätzliche Aktionen -> Konfigurieren -> Code -> Tab „Organisieren“ -> Formatierer.
  3. Setzen Sie ein Häkchen bei Trailing Whitespace Remove (Abschließende Leerzeichen entfernen).
  4. 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:

  1. Starten Sie tradefed.sh mit dem Debug-Flag: TF_DEBUG=1 tradefed.sh
  2. 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 Port 10088 angehängt wird.
  3. Über das Hauptmenü mit der Remote-Fehlerbehebung von Eclipse verbinden: Wählen Sie Ausführen > Konfigurationen zur Fehlerbehebung... aus.
  4. Wählen Sie im Pop-up-Dialogfeld im linken Menü Remote-Java-Anwendung aus.
  5. Klicken Sie in der Aktionsleiste auf das Symbol Neue Startkonfiguration.
  6. Geben Sie der Konfiguration einen Namen und wählen Sie tradefederation als Projekt aus.
  7. Geben Sie den Port mit der zuvor angegebenen Adresse an.
  8. Wechseln Sie zum Tab Quelle und fügen Sie dem Quellsuchpfad die Projekte tradefederation und google-tradefed hinzu.
  9. 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:

  1. Starten Sie tradefed.sh mit dem Debug-Flag: TF_DEBUG=1 tradefed.sh
  2. Warten Sie, bis die Eingabeaufforderung der JVM angezeigt wird: Listening for transport dt_socket at address: 10088.
  3. 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
    
  4. Warten Sie auf die Verbindung und beheben Sie die Fehlerbehebung. Führen Sie man jdb aus, um weitere Hilfe zu erhalten.

Codeabdeckung prüfen

  1. Installieren Sie das Eclemma-Plug-in.
  2. Gehen Sie zu Hilfe > Neue Software installieren und geben Sie als Ziel für den Assistenten Folgendes an: http://update.eclemma.org/
  3. Wählen Sie nach der Installation die Testoption Coverage As > JUnit aus, um einen Code-Coverage-Lauf durchzuführen.