このドキュメントではマルチデバイス NFC テストの実行方法について説明します。
前提条件を満たす
マルチデバイス NFC テストを実行する前に、以下を行います。
DUT とテスト用の PN532 NFC リーダーを準備する
前の手順が終わったら、以下の手順に沿って DUT とテスト用の PN532 NFC リーダーを準備します。
- USB 経由で DUT をホストマシンに接続します。
- ホストに ADB 経由で DUT にアクセスするための権限を付与します。
- 次のコマンドを実行して、CTS 検証ツールアプリ( - CtsVerifier.apk)を DUT にインストールします。- extract root/out/host/linux-x86/cts-verifier/android-cts-verifier.zip cd android-cts-verifier adb install -r -g CtsVerifier.apk
- NFC テストに必要な APK をインストールします。 - cd MultiDevice adb install -r -g NfcEmulatorTestApp.apk
NFC をこの DUT 用にセットアップする
以下の手順に沿って NFC をこの DUT 用にセットアップします。
- DUT で [設定] メニューを開きます。
- [NFC] または [接続済みのデバイス] のセクションを探します。
- [NFC] の切り替えスイッチがオンになっていることを確認します。
- NFC チップをスマートフォンの NFC リーダーの上に配置します。 - PN532 NFC チップを確保します。All-In-One PN532、非 BLE オプションが推奨です。
- USB ケーブルを使って PN532 NFC チップを Linux ホストに接続します。
- 次の写真のように、PN532 NFC チップをスマートフォンの NFC リーダーの上に配置します。
   - 図 1. NFC チップをかざす。 
テスト環境をセットアップする
以下の手順に沿って、テスト環境のセットアップを行います。
- テスト環境をセットアップするには、次のコマンドを実行します。 - cd MultiDevice source build/envsetup.sh- このコマンドは、Python をチェックし、 - PYTHONPATH環境変数をセットアップします。ターミナルにエラーが出力されなければ、マルチデバイス テストを実行する環境の準備は整っています。- 実行時にエラー メッセージ - libtinfo.so.6: no version information available (required by /bin/sh)が表示された場合は、次のコマンドを実行して- libtinfo.so.6ファイルの名前を変更します。- mv $ENV_DIRECTORY/lib/libtinfo.so.6 $ENV_DIRECTORY/lib/libtinfo.so.6.bak
- MultiDevice/config.ymlで DUT のデバイス シリアル ID と PN532 NFC リーダーを設定して、テストベッドをセットアップします。- TestBeds: - Name: CtsNfcHceMultiDeviceTestCases-py-ctsv Controllers: AndroidDevice: - serial: "<device-id>" TestParams: pn532_serial_path: "<pn532-serial-path>"
NFC テストを実行する
NFC テストを実行します。
- CTS-V アプリを開き、[NFC Tests] をタップします。   - 図 2. CTS-V アプリ。 - テストケースの一覧とともに情報ウィンドウが表示されます。   - 図 3. CTS-V アプリのテストケース。 
- 次のコマンドを実行して、ホスト上でテストを実行します。 - MultiDevice$ python3 tools/run_all_tests.py- テストが完了すると、CTS-V アプリでテスト結果が更新されます。成功したテストは緑色で表示されます。   - 図 4. CTS-V テストの結果。 
- 赤色の失敗が表示されている場合は、次のコマンドで失敗したテストを実行し直します。 - python3 tools/run_all_tests.py --test_cases "`TestCaseA`" "`TestCaseB`" --test_files "`TestFileA`"- ここで - TestCaseAと- TestCaseBは、CTS-V に表示されたテストケースの名前です。
- TestFileAはテストケースを含んでいるテストファイルです。
 - 例: - python3 tools/run_all_tests.py --test_cases "test_conflicting_non_payment" "test_conflicting_non_payment_prefix" --test_files "CtsNfcHceMultiDeviceTestCases-py-ctsv"
