2025 年 3 月 27 日より、AOSP のビルドとコントリビューションには aosp-main
ではなく android-latest-release
を使用することをおすすめします。詳細については、AOSP の変更をご覧ください。
JAR ホストテスト
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
ソフトウェアの完全なコード カバレッジを実現するには、Java アーカイブ(JAR)ホストテストを実装する必要があります。手順に沿ってローカル単体テストをビルドします。
特定の機能だけを検証するために小規模の単体テストを作成します。
例
ブループリント ファイル platform_testing/tests/example/jarhosttest/Android.bp は、シンプルな Hello World JAR ホストテストのサンプルです。必要に応じてこれをコピーして変更してください。
これに対応する実際のテストコードは、platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java にあります。
説明のため、ブループリント ファイルのスナップショットを以下に示します。
java_test_host {
name: "HelloWorldHostTest",
test_suites: ["general-tests"],
srcs: ["test/**/*.java"],
static_libs: [
"junit",
"mockito",
],
}
最初の java_test_host
宣言は、これが JAR ホストテストであることを示します。使用例については、frameworks/base/tools/powermodel/Android.bp をご覧ください。
設定
各設定の説明は次のとおりです。
java_test_host
モジュール タイプが指定されている場合、name
設定が(ブロックの先頭に)必要です。この設定がモジュール名になり、生成される JAR は同じ名前で接尾辞 .jar
が付きます。この例では、生成されるテスト JAR の名前は HelloWorldHostTest.jar
になります。また、この設定ではモジュールの make ターゲット名も定義します。これにより、make [options] <HelloWorldHostTest>
を使用してテスト モジュールとすべての依存関係をビルドできます。
name: "HelloWorldHostTest",
test_suites
設定により、Trade Federation テストハーネスでテストを簡単に検出できるようになります。JAR ホストテストを共有できるように、CTS などの他のスイートをここに追加できます。
test_suites: ["general-tests"],
static_libs
設定は、指定されたモジュールの内容を現在のモジュールで生成される APK に組み込むようビルドシステムに指示します。
つまり、各名前付きモジュールは .jar
ファイルを生成します。
モジュールの内容はコンパイル時に classpath 参照の解決に使用され、生成される APK に組み込まれます。
static_libs: [
"junit",
],
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-03-26 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-03-26 UTC。"],[],[],null,["# JAR host tests\n\nJava archive (JAR) host tests should be implemented to provide complete code\ncoverage of your software. Follow the instructions to [Build local unit\ntests](https://developer.android.com/training/testing/unit-testing/local-unit-tests).\nWrite small unit tests to validate a specific function and nothing more.\n\nExample\n-------\n\nThe following Blueprint file provides a simple Hello World JAR host test example\nto copy and adapt to your needs:\n[platform_testing/tests/example/jarhosttest/Android.bp](https://android.googlesource.com/platform/platform_testing/+/android16-release/tests/example/jarhosttest/Android.bp)\n\nThis corresponds to the actual test code found at:\n[platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java](https://android.googlesource.com/platform/platform_testing/+/android16-release/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java)\n\nA snapshot of the Blueprint file is included here for convenience: \n\n java_test_host {\n name: \"HelloWorldHostTest\",\n\n test_suites: [\"general-tests\"],\n\n srcs: [\"test/**/*.java\"],\n\n static_libs: [\n \"junit\",\n \"mockito\",\n ],\n }\n\nThe `java_test_host` declaration at the beginning indicates that this is a JAR\nhost test. See an example of its use in:\n[frameworks/base/tools/powermodel/Android.bp](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android16-release/tools/powermodel/Android.bp)\n\nSettings\n--------\n\nSee below for explanations of the following settings:\n\n- The `name` setting is required when the `java_test_host` module type is\n specified (at the start of the block). This setting gives a name to your\n module, and the resulting JAR has the same name and a `.jar` suffix. In the\n example below,the resulting test JAR is named `HelloWorldHostTest.jar`. In\n addition, this setting also defines a make target name for your module, so\n that you can use `make [options] \u003cHelloWorldHostTest\u003e` to build your test\n module and all its dependencies.\n\n name: \"HelloWorldHostTest\",\n\n- The `test_suites` setting makes the test easily discoverable by the Trade\n Federation test harness. Other test suites can be added here, such as CTS,\n so that the JAR host test test can be shared.\n\n test_suites: [\"general-tests\"],\n\n- The `static_libs` setting instructs the build system to incorporate the\n contents of the named modules into the resulting APK of the current module.\n This means that each named module is expected to produce a `.jar` file.\n The module's content is used for resolving classpath references during\n compile time and incorporated into the resulting APK.\n\n static_libs: [\n \"junit\",\n ],"]]