

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Android および AWS Device Farm のインストルメンテーション
<a name="test-types-android-instrumentation"></a>

Device Farm では、Android 用のインストルメンテーション (JUnit、Espresso、Robotium、または実装ベースのテスト) のサポートを提供します。

Device Farm には、サンプルの Android アプリケーションと、インストルメンテーション (Espresso) を含む 3 つの Android オートメーションフレームワークでの動作テストへのリンクが用意されています。[Android 用 Device Farm サンプルアプリケーション](https://github.com/awslabs/aws-device-farm-sample-app-for-android)は、GitHub でダウンロードできます。

Device Farm のテストに関する詳細については、「[AWS Device Farm のテストフレームワークと組み込みテスト](test-types.md)」を参照してください。

**Topics**
+ [インストゥルメンテーションについて](#test-types-android-instrumentation-what-is)
+ [Android インストルメンテーションテストに関する考慮事項](#test-types-android-instrumentation-settings)
+ [スタンダードモードのテスト解析](#test-types-android-standard-mode-test-parse)
+ [Android インストルメンテーションと Device Farm の統合](test-types-android-instrumentation-integrate.md)

## インストゥルメンテーションについて
<a name="test-types-android-instrumentation-what-is"></a>

Android のインストルメンテーションはテストコードでコールバックメソッドを呼び出すことができます。これにより、コンポーネントをデバッグしているかのように、コンポーネントのライフサイクルを段階的に実行できます。詳細については、「[Android 開発者ツール](https://developer.android.com/studio/test/test-in-android-studio#test_types_and_locations)」ドキュメントの「*テストのタイプと場所*」セクション内の「*インストルメント化テスト*」を参照してください。

## Android インストルメンテーションテストに関する考慮事項
<a name="test-types-android-instrumentation-settings"></a>

Android インストルメンテーションを使用する場合は、次の推奨事項と注意事項を考慮してください。

**Android OS の互換性を確認する**  
 [Android ドキュメント](https://developer.android.com/jetpack/androidx/releases/test#orchestrator-1.5.0)をチェックして、インストルメンテーションが Android OS バージョンと互換性があることを確認します。

**コマンドラインからの実行**  
 コマンドラインからインストルメンテーションテストを実行するには、[Android ドキュメント](https://developer.android.com/training/testing/instrumented-tests/androidx-test-libraries/runner#enable-command)に従ってください。

**システムアニメーション**  
 「[Espresso テスト用 Android ドキュメント](https://developer.android.com/training/testing/espresso)」に基づき、実際のデバイスでテストするときはシステムアニメーションをオフにすることをお勧めします。[android.support.test.runner.AndroidJUnitRunner](http://developer.android.com/reference/android/support/test/runner/AndroidJUnitRunner.html) インストルメンテーションテスト実行ナーを使用して実行する場合、Device Farm は **Window Animation Scale**、**Transition Animation Scale**、**Animator Duration Scale** の設定を自動的に無効にします。

**テストレコーダー**  
Device Farm は、Robotium などの記録および再生用スクリプティングツールを備えたフレームワークをサポートしています。

## スタンダードモードのテスト解析
<a name="test-types-android-standard-mode-test-parse"></a>

実行の標準モードでは、Device Farm はテストスイートを解析し、実行する固有のテストクラスおよびメソッドを識別します。これは [Dex Test Parser](https://github.com/linkedin/dex-test-parser) というツールを使って行われます。

Android インストルメンテーションの .apk ファイルを入力として指定すると、パーサーは JUnit 3 および JUnit 4 コンベンションに一致するテストの完全修飾メソッド名を返します。

これをローカル環境でテストするには: 

1. [https://github.com/linkedin/dex-test-parser](https://github.com/linkedin/dex-test-parser) バイナリーをダウンロードします。

1. 次のコマンドを実行して、Device Farm で実行されるテストメソッドのリストを取得します:

   ```
   java -jar parser.jar path/to/apk path/for/output
   ```