2025 年 3 月 27 日より、AOSP のビルドとコントリビューションには aosp-main
ではなく android-latest-release
を使用することをおすすめします。詳細については、AOSP の変更をご覧ください。
テストコマンド スケジューラ
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
Tradefed でのテストの実行はすべてコマンド スケジューラを通じてリクエストされます。そのため、コマンド スケジューラはテストの実行に必要なハーネスのコンポーネントとして重要です。
ライフサイクル
テスト リクエストが Tradefed に渡されると(コンソールからの入力など)、テスト実行前に次のイベントが実行されます。
- テスト リクエストが解析されます。テスト リクエストは通常、XML Tradefed 構成リファレンスとオプションで構成されます。例:
> run host --class com.android.tradefed.build.BuildInfoTest
- デバイス マネージャーに対して、テスト リクエストに一致するデバイスがリクエストされます。デバイス マネージャーはテスト リクエストに一致するデバイスを割り当てます。たとえば、Pixel デバイスがリクエストされた場合、デバイス マネージャーは利用可能な Pixel デバイスを検索します。
- テスト リクエストとデバイスが呼び出しとして開始されます。テストが開始されます。
- デバイスがリリースされます。呼び出しが終了すると、割り当てられたデバイスはリリースされ、他のテスト用に割り当てられます。
Tradefed の呼び出し
Tradefed での呼び出しとは、テストコマンドが現在実行中であることを指します。
呼び出しに含まれるデバイスは allocated
としてマークされ、他のテストには使用できません。
TF は次の手順をこの順序で実行します。
- ビルドとテスト アーティファクトのダウンロード
- ターゲットの作成
- テストの実行
- ターゲットのクリーンアップ
- 結果のレポート
各ステップの詳細は、アーキテクチャのセクションを参照してください。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。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,["# Test Command Scheduler\n\nIn Tradefed, every single test request goes through the\n[Command Scheduler](https://android.googlesource.com/platform/tools/tradefederation/+/refs/heads/android16-release/src/com/android/tradefed/command/CommandScheduler.java)\nto be run. So the Command Scheduler is a key component of the harness needed to\nrun tests.\n\nLifecycle\n---------\n\nWhen a test request is presented to Tradefed (for example, input from the\nconsole), it will go through the following events before being run:\n\n1. *Test request is parsed* - A test request is usually composed of an XML Tradefed configuration reference followed by options. For example: `\u003e run host --class com.android.tradefed.build.BuildInfoTest`\n2. *Device Manager is requested for device(s) matching the test request* - Device Manager [allocates a device](/docs/core/tests/tradefed/architecture/device-manager/device-allocation) that matches the test requests. For example, if a Pixel device is requested then Device Manager will look for an available Pixel device.\n3. *Test request + device(s) starts as an invocation* - Testing is starting.\n4. *Device release* - Once the invocation is finished, the device allocated will be released and can be allocated for other tests.\n\nTradefed invocation\n-------------------\n\nAn invocation in Tradefed refers to when a test command is currently executing.\nDevices included in the invocation are marked as `allocated` and cannot be used\nby other tests to run.\n\nTF will execute the following steps in this order:\n\n1. [Build and test artifacts download](/docs/core/tests/tradefed/architecture/build-provider)\n2. [Target preparation](/docs/core/tests/tradefed/architecture/target-preparer)\n3. [Test execution](/docs/core/tests/tradefed/architecture/advanced/test-runner)\n4. [Target clean up](/docs/core/tests/tradefed/architecture/target-preparer)\n5. [Result reporting](/docs/core/tests/tradefed/architecture/result-reporter)\n\nEach step is described in more detail within the\n[Architecture section](/docs/core/tests/tradefed/architecture)."]]