PC パソコン

Android Studio「No tests found for given includes」(Kotlinテスト名に空白)の解決方法

Android Studioから、空白を含むKotlinのバッククォート形式テスト名を1件だけ実行すると、AGP 9.4.xでは対象テストを見つけられず、実行件数が0件になったり、No tests found for given includesで失敗したりする既知問題があります。GoogleはIssue #565047695として修正し、Android Studio Rabbit 2 Canary 2に同梱されたAndroid Gradle Plugin 9.5.0-alpha07で修正版を公開しています。

代表的なエラー

Execution failed for task ':app:connectedDebugAndroidTest'.
> No tests found for given includes:
  [com.example.ExampleInstrumentedTest.test with spaces]

Gradleやテストランナーの版によっては明示的なエラーを出さず、Android StudioのRunウィンドウに「0 tests」だけが表示されることもあります。重要な手掛かりは、クラス全体では成功するのに、空白を含むバッククォート名のメソッドを個別実行した場合だけ失敗することです。

原因

Kotlinではバッククォートで囲むことで、テスト関数名に空白を含められます。

@Test
fun `user can sign in with valid credentials`() {
    // test body
}

AGP 9.4.xには、Android Studioから単一のinstrumented testを指定するとき、この表示名を端末側のテストフィルタへ正しく渡せない不具合があります。アプリ本体やテストのアサーションではなく、IDE・AGP・端末上のテストランナー間で単一メソッド名を受け渡す経路が原因です。

発生条件と対象バージョン

  • Android Gradle Plugin 9.4.xを使用している。
  • androidTest内のKotlinテストで、関数名をバッククォートで囲み、その名前に空白が含まれる。
  • Android StudioのガターアイコンやRun構成から、そのメソッドだけを実行する。
  • クラス全体またはinstrumented test一式の実行は成功する場合がある。

Googleの修正一覧では、Issue #565047695はAndroid Studio Rabbit 2 Canary 2(2026.2.2 Canary 2)とAndroid Gradle Plugin 9.5.0-alpha07の組み合わせで修正済みとして掲載されています。Canary版はプレビュー用です。安定運用が必要なプロジェクトでは、正式な安定版への取り込みを公式リリースノートで確認してから更新してください。

推奨する解決手順

  1. gradle/libs.versions.toml、ルートのbuild.gradle(.kts)、またはプラグイン管理設定で現在のAGP版を確認します。
  2. 検証環境でAndroid Studio Rabbit 2 Canary 2以降とAGP 9.5.0-alpha07以降の修正版を試します。
  3. Gradle同期を実行し、対象の単一テストを再度ガターアイコンから実行します。
  4. RunウィンドウとconnectedDebugAndroidTestの出力を確認し、対象メソッドが1件実行されたことを確認します。
// libs.versions.toml の例
[versions]
agp = "9.5.0-alpha07"

[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }

プレビュー版への更新前にブランチを分け、Gradle、Kotlin、Compose、テスト関連プラグインとの互換性も確認してください。

安定版を維持する場合の代替策

  1. テスト関数名から空白を除く:たとえばuserCanSignInWithValidCredentialsのような通常の識別子へ一時的に変更します。
  2. クラス単位で実行する:問題が単一メソッドのフィルタ処理に限られる場合、テストクラス全体またはモジュールのinstrumented testを実行します。
  3. コマンドラインで広い範囲を実行する:./gradlew connectedDebugAndroidTestで全対象を実行し、結果レポートから該当テストを確認します。

バッククォート名の引用方法を変えたり、独自のadb shell am instrumentフィルタを組み立てたりする方法は、シェルやランナーの版によって挙動が変わります。公式に確認された恒久対策は修正版AGPの使用です。

確認方法

  1. 空白を含むバッククォート名のテストを1件選びます。
  2. そのメソッドだけをAndroid Studioから実行します。
  3. No tests found for given includesが表示されないことを確認します。
  4. Runウィンドウで実行数が1件、結果がpassedまたは意図したfailedになっていることを確認します。
  5. 念のためクラス全体とCI上のinstrumented testも実行します。

注意点

  • 同じメッセージは、クラス名・パッケージ名・Build Variant・Run構成が誤っている場合にも発生します。バッククォート名に空白がなくても失敗する場合は、別原因を調べてください。
  • ローカルJVMテスト(test)と端末上のinstrumented test(androidTest)を混同しないでください。この既知問題は単一instrumented testの実行経路に関するものです。
  • Canary版を本番用CIへ直ちに導入せず、専用ブランチで再現テストと回帰テストを行ってください。

まとめ

AGP 9.4.xで空白を含むKotlinバッククォート名のinstrumented testだけがNo tests found for given includesまたは0件実行になる場合、Issue #565047695の既知問題と一致します。修正版はAndroid Studio Rabbit 2 Canary 2/AGP 9.5.0-alpha07です。安定版を維持する間は、空白のない関数名へ変更するか、クラス全体を実行する方法が安全な代替策です。

公式情報