ユニットテストと機能テストを含める

このセクションでは、プロジェクトに変更を加えた後、通商連合のテストを実行して貢献する方法について説明します。これも:

  • 新しい単体テストクラスを追加する場所
  • EclipseおよびEclipseIDEの外部で単体テストを実行する
  • 機能テストを追加する場所
  • 機能テストの実行
  • TF事前送信検証の一部をローカルで実行する

単体テストを追加する

Android Open Source Project(AOSP)で、 tools / tradefederation / core / tests / src / com / android / tradefed /UnitTests.javaに単体テストクラスを追加します。

重要:これらの場所に新しい単体テストクラスを追加すると、追加の設定なしで事前送信で自動的に実行されます。

単体テストを実行する

Trade FederationのすべてのAOSP単体テストと機能テストは、 tools/tradefederation/core/testsプロジェクトにあります。

Eclipse内で、個々の単体テストを実行するには、テストを右クリックして、「実行」>「JUnit 」を選択します。すべての単体テストを実行するには、 com.android.tradefed.UnitTestsスイートを実行します。

次のように、ビルド後にTradefedソースツリーのコマンドラインから単体テストを開始することもできます: tools/tradefederation/core/javatests/run_tradefed_tests.sh

単体テストはスタンドアロンで実行できますが、機能テストは通商連合自体を使用して実行する必要があります。 Androidデバイスが必要です。すべての機能テストは、命名規則*FuncTestに従う必要があります。

ユニットテストの結果を確認する

run_tradefed_tests.shを実行すると、単体テストは、いくつかのエラー条件を含むテストハーネスのすべての部分を実行します。スタックトレースを含む詳細な出力をコンソールに出力します。

結果の最終的な要約は、障害が発生したかどうかを示します。

コンソールでの最終的な要約の例:

12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]

すべてのテストは合格するように維持されているため、ローカルの変更で障害が発生した場合は、テストが修正されていることを確認してください。

機能テストを追加する

  • 機能テストにデバイスが含まれる場合( ITestDevice APIを使用)、スイート定義はcom.android.tradefed.DeviceFuncTestsにあります。それ以外の場合、スイート定義はcom.android.tradefed.FuncTestsにあります。

  • テストメソッドが既存のスイートサブクラスの1つに入れることに意味がある場合は、そこに追加することをお勧めします。それ以外の場合は、該当するスイートに新しいクラスを自由に追加してください。

  • いずれの場合も、スイートに追加することで、テストは他の機能テストとともにCIパイプラインで自動的に実行されます。

機能テストを実行する

Eclipseから機能テストを実行するには:

  1. デバイスがホストに接続されていること、およびそのadbと、必要に応じてfastbootがEclipseのPATHにあることを確認します。これを行う最も簡単な方法は、適切なPATHを使用してシェルセットアップからEclipseを起動することです。
  2. Javaアプリケーションを作成します。 [実行]> [構成の実行]を使用して構成を実行します。
  3. プロジェクトをtradefed-testsに設定し、メインクラスをcom.android.tradefed.command.CommandRunnerに設定します。
  4. m tradefed-all実行します。
  5. [引数]タブで次のコマンドライン引数を指定しhost --class <full path of test class to run>
  6. [実行]をクリックします。

Eclipseの外部で機能テストを実行します。

  1. 通商連合を構築します。
  2. Androidデバイスをホストに接続します。
  3. tools/tradefederation/core/javatests/run_tradefed_func_tests.sh実行します
  4. 必要に応じて、 adb devicesの出力に表示される--serial <serial no>を追加してデバイスを選択します。

ローカルの変更に対してTF事前送信テストを実行する

TF事前送信と同様の方法で実行する場合は、次を使用します。

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

これにより、ローカルで構築されたTFに対してすべてのTF事前送信テストがトリガーされ、変更がテストに違反していないことを検証できます。

TF事前送信テストは、上記の単体テストのスーパーセットですが、実行に時間がかかります。したがって、検証を迅速化するために開発中に単体テストを実行し、CLをアップロードする前に事前送信を実行することをお勧めします。