このセクションでは、プロジェクトに変更を加えた後、通商連合のテストを実行して貢献する方法について説明します。これも:
- 新しい単体テストクラスを追加する場所
- 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から機能テストを実行するには:
- デバイスがホストに接続されていること、およびその
adb
と、必要に応じてfastboot
がEclipseのPATHにあることを確認します。これを行う最も簡単な方法は、適切なPATHを使用してシェルセットアップからEclipseを起動することです。 - Javaアプリケーションを作成します。 [実行]> [構成の実行]を使用して構成を実行します。
- プロジェクトを
tradefed-tests
に設定し、メインクラスをcom.android.tradefed.command.CommandRunner
に設定します。 -
m tradefed-all
実行します。 - [引数]タブで次のコマンドライン引数を指定し
host --class <full path of test class to run>
- [実行]をクリックします。
Eclipseの外部で機能テストを実行します。
- 通商連合を構築します。
- Androidデバイスをホストに接続します。
-
tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
実行します - 必要に応じて、
adb devices
の出力に表示される--serial <serial no>
を追加してデバイスを選択します。
ローカルの変更に対してTF事前送信テストを実行する
TF事前送信と同様の方法で実行する場合は、次を使用します。
tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh
これにより、ローカルで構築されたTFに対してすべてのTF事前送信テストがトリガーされ、変更がテストに違反していないことを検証できます。
TF事前送信テストは、上記の単体テストのスーパーセットですが、実行に時間がかかります。したがって、検証を迅速化するために開発中に単体テストを実行し、CLをアップロードする前に事前送信を実行することをお勧めします。