自動化 CTS テストを実行する(Android 11 以降)

CTS 自動テストを実行するには、次の 2 つの方法があります。

  • Trade Federation は、コマンドラインからテストを実行できるアプリとテスト フレームワークです。基本的に、このフレームワークでは @Test アノテーションを使用してテストにアノテーションを付けることができ、アプリがそれらのテストを検出して実行します。

  • OmniLab Android Test Station は、GUI でテストを実行できるアプリです。

このページでは、Trade Federation を使用して自動テストを実行する方法について説明します。OmniLab Android テストハーネスを使用してテストを実行する手順については、OmniLab Android Test Station をご覧ください。

すべての自動化 CTS テストを実行する

Trade Federation には、テストを実行するためのコマンドライン インターフェースである CTS コンソールが用意されています。自動 CTS テストスイート全体を実行するには、次のようにします。

  1. CTS 自動テストを設定するの手順を実施していることを確認します。
  2. テスト ワークステーションで、CTS パッケージを解凍したフォルダから cts-tradefed スクリプトを実行して CTS コンソールを起動します。

    ./android-cts/tools/cts-tradefed
    

    CTS コンソールにカーソルが表示され、CTS コマンド(cts-tradefed >)を入力できます。

  3. cts テストプランには、すべての CTS 自動テストが含まれています。次のコマンドを実行して、cts テストプランを実行します。

    run cts
    

    CTS 自動テストが実行されます。次の点にご注意ください。

    • Android 13 以降では、マルチデバイス テストがサポートされています。これらのテストは、シャーディングが使用されている場合にのみ自動的に実行されます。シャーディングの詳細については、テスト実行時間を短縮するをご覧ください。これらのテストを手動で実行する場合は、マルチデバイス テストを実行するをご覧ください。

    • CTS を実行するたびに、Ctrl+C キーを押して既存の CTS コンソールを停止し、CTS コンソールを再実行します。

    • 複数の CTS バージョンを 1 つのホスト上で実行することはできません。各 CTS バージョンが既存のオープン ロケーション コード(OLC)サーバーを使用して起動するためです。

  4. テスト結果を表示します。詳細については、CTS の結果を解釈するをご覧ください。

  5. 今回が初めてのテスト実行の場合は、外部要因などが原因でテストが失敗することがあります。たとえば、ネットワーク接続が遅い場合や GPS 信号が弱い場合などです。すべてのテスト モジュールが完了し、最後の 2 回の再試行セッションでテスト失敗の数が同じになるまで、テストを再実行(再試行)します。

    run retry --retry session_number`
    
  6. 再試行しても同じテストで失敗する場合は、失敗を繰り返しているテストのデバッグに集中します。テスト結果のトラブルシューティングについては、テスト失敗を選別するCTS テストのトラブルシューティングをご覧ください。

マルチスクリーン デバイスで CTS を実行する

デバイスが Android 11 または 12 を搭載していて、デバイスに複数の画面がある場合は、cts-foldable テストプランを個別に実行する必要があります。

run cts-foldable

代替画面モードで合格または不合格になったテストケースには、display_mode の値(testcase1[display_mode=0] など)が末尾に付加されます。

マルチデバイス テストを実行する

次のコマンドを実行して、cts-multidevice テストプランを実行します。

run cts-multidevice

個々のテストプランを実行する

すべてのテストプランを一度に実行するのではなく、個々のテストプランを実行することもできます。この方法は、時間を節約する場合や、特定のテストセットに集中する場合に便利です。個々のテストプランを実行するには、次のようにします。

  1. list modules コマンドを実行して、実行するテストプランの名前を特定します。

  2. テストプランを実行します。

    run cts --plan test_module_or_plan_name
    

テスト実行時間を短縮する

テストの実行時間を短縮するには、複数のデバイス間でテストをシャーディングします。シャーディングするには、2 台以上のデバイスをホストに接続する必要がありますが、適切な効果を得るには 6 台以上接続することをおすすめします。

Android 11 以降でテストをシャーディングするには、次のコマンドを実行します。

run cts --shard-count number_of_shards

また、検証用のテストを実行する前に、CTS run cts-dev コマンドを使用してテスト実行時間を短縮できます。このコマンドを使用すると、前提条件、デバイス情報の収集、すべてのシステム状態チェッカーがスキップされます。また、1 つの ABI のみでテストを実行します。