Eclipse の設定

Eclipse を使用して Tradefed をセットアップする手順は次のとおりです。

Trade Federation を開発するには、独立したワークスペースを作成します。すでに Android デバイスの開発に使用しているワークスペースは再利用しないでください。

必要に応じて、eclipse.org/downloads から Eclipse IDE for Java Developers をダウンロードできます。

プロジェクトを作成する

  1. コマンドラインから make を 1 回実行します。これにより、以下のプロジェクトの依存先となる外部ライブラリが作成されます。
  2. Window > Preferences > Java > Build Path> Classpath Variables で TRADEFED_ROOT クラスパス変数を設定し、tradefed ソースのルートを指すようにします。
  3. Window > Preferences > General > Workspace > Linked Resources で TRADEFED_ROOT パス変数を設定し、tradefed ソースのルートを指すようにします。
  4. File > Import...-> General > Existing Projects into workspace" ウィザードを使用して、次のパスにあるオープンソース Java プロジェクトを取り込みます。

    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. (省略可)ddmlib ソースコードを確認する場合は、バンドルされていないツールブランチ(/platform/tools/base/tools_r22/ddmlib/src/main/java/com/android/ddmlib/IDevice.java など)から、ソースコードをアタッチします。

  6. (省略可)CTS ハーネス プロジェクトも読み込む場合は、下記をインポートします。

    test/suite_harness/common/util
    test/suite_harness/common/host-side/util
    test/suite_harness/common/host-side/tradefed
    

自動フォーマット

注: 必須のファイルは、完全なプラットフォーム ソースツリーの development/ide/eclipse 内にあります。したがって、それらのファイルを取得するには、main のようなプラットフォーム ブランチ(/development/main/ide/eclipse/)を確認する必要があります。

Eclipse の環境設定ファイルを使用して、フォーマッタを自動的に Android スタイルガイドに設定します。Studio でこれを行う手順は次のとおりです。

  1. [Window] > [Preferences] > [Java] > [Code Style] を開きます。
  2. [Formatter] で、ファイル android-formatting.xml をインポートします。
  3. [Organize] > [Imports] で、ファイル android.importorder をインポートします。

末尾の空白文字を削除する

Eclipse で強制的に末尾の空白文字をすべて削除するには:

  1. [Window] > [Preferences] -> [Java] -> [Editor] -> [Save Actions] を開きます。
  2. 次に、[Additional Actions] -> [Configure] -> [Code] > [Organizing] タブ -> [Formatter] を開きます。
  3. [Remove Trailing Whitespace] をオンにします。
  4. [Apply and Close] をクリックします。

コードスタイルをチェックする

変更リストを送信すると、自動プリアップロード フックが実行されて、コード形式(google-java-format)がチェックされます。

これにより、コードを共通の標準形式に設定できます。

Eclipse をデバッグする

Eclipse でデバッガを使用して TF コードを実行する場合は、まず対象のコードの単体テストを作成することをおすすめします。これは、最も簡単かつ迅速に機能を試すことができる方法です。

TF 単体テストをデバッグするには、単にテストを右クリックして、[Debug As] > [JUnit test] を選択します。

TF 機能テストをデバッグするには、前のセクションで説明した機能テストの実行手順に従います。ただし、[Run] > [Debug configurations] メニューを使用します。

TF プログラム自体をデバッグするには、前のセクションで説明した機能テストの実行手順に従います。ただし、ステップ 4 で実行する構成に対してコマンドライン引数を指定します。したがって、「instrument」構成をデバッグするには、[Run] > [Debug configuration] メニューを開き、Eclipse デバッグ構成の [Arguments] タブを -- package <package to run> instrument に設定します。

Eclipse を使用したリモート デバッグ

tradefed.sh コマンドラインから開始した tradefed セッションをリモートでデバッグするには:

  1. デバッグフラグ TF_DEBUG=1 tradefed.sh を指定して tradefed.sh を開始します。
  2. JVM から Listening for transport dt_socket at address: 10088 というプロンプトが表示されるまで待ちます。これは、JVM がポート 10088 でデバッガの接続を待機していることを意味します。
  3. メインメニューから Eclipse のリモート デバッグを使用して接続します。[Run] > [Debug Configurations...] を選択します。
  4. ポップアップ ダイアログで、左側のメニューから [Remote Java Application] を選択します。
  5. アクションバーの New launch configuration アイコンをクリックします。
  6. 構成に任意の名前を付け、プロジェクトとして [tradefederation] を選択します。
  7. 前に指定したアドレスを使用してポートに値を入力します。
  8. [Source] タブに切り替えて、[Source Lookup Path] にプロジェクト tradefederation および google-tradefed を追加します。
  9. [Debug] をクリックしてデバッグ セッションを開始します。

リッスンしている JVM プロセスにデバッガが接続し、tradefed.sh を実行しているターミナルに tf> プロンプトが表示されます。

デバッグモードでコードをステップ実行するには、Eclipse でブレーク ポイントを設定し、ターミナルで Tradefed コマンド(例: run <test>)を呼び出します。TF の開始時になんらかのデバッグを行うには、まずブレーク ポイントを設定してから、Eclipse デバッガを接続します。

ヒント: 代替ポートを使用するには、上記のステップ 1 のコマンドに TF_DEBUG_PORT=nnn を追加します。不明なハングバグを調査する場合、本番環境でもこれを使用できます。tradefed.shsuspend=ysuspend=n に変更し、デバッグフラグを指定して開始します。JVM はデバッガの接続を待機しませんが、プロセスがまだ実行中であれば、いつでもそうすることができます。

JDB を使用したリモート デバッグ

Java デバッガ JDB を使用する手順は、Eclipse の場合の手順に似ています。

  1. デバッグフラグ TF_DEBUG=1 tradefed.sh を指定して tradefed.sh を開始します。
  2. JVM から Listening for transport dt_socket at address: 10088 というプロンプトが表示されるまで待ちます。
  3. jdb を接続します。たとえば、croot から下記を実行します。

    jdb -attach 10088 \
        -sourcepath tools/tradefederation/core/src:vendor/google_tradefederation/core/src
    
  4. 接続とデバッグが終了するまで待ちます。詳しいヘルプが必要な場合は、man jdb を実行します。

コード カバレッジを調べる

  1. Eclemma プラグインをインストールします。
  2. [Help] > [Install New Software] を開き、ウィザードで http://update.eclemma.org/ を指定します。
  3. インストールが完了したら、[Coverage As] > [JUnit] テスト オプションを選択して、コード カバレッジを実行します。