Gradle怎么运行Android设备测试

小涛酱_9505

小涛酱_9505

2026-11-01

978人浏览

原创

./gradlew connectedCheck 是首选命令,因其是AGP预定义聚合任务,自动完成构建主APK与测试APK、安装、运行测试及生成报告全流程。

gradle怎么运行android设备测试

直接运行 Android 设备上的测试(即仪器化测试),核心命令是 ./gradlew connectedCheck,但前提是设备已连接、调试已启用、测试代码和依赖配置正确。其他看似相似的命令(比如 test 或 assembleAndroidTest)不会真正触发设备执行。

为什么 connectedCheck 是首选命令

这个任务是 AGP(Android Gradle Plugin)预定义的聚合任务,它自动串联了完整流程:构建被测 App(assembleDebug)、构建测试 APK(assembleAndroidTest)、安装两者到已连接设备、运行所有 androidTest 中的测试用例、收集结果并生成报告。

常见误区:

  • ./gradlew test 只跑本地单元测试(JVM 上),完全不碰设备
  • ./gradlew androidTest 仅构建并安装测试 APK,但不自动运行——你得手动用 adb shell am instrument
  • ./gradlew connectedAndroidTest 是 connectedCheck 的子任务,能运行测试,但跳过了对被测 APK 是否存在的校验,容易在 clean 项目后失败

androidTest 目录和 androidTestImplementation 必须匹配

AGP 严格按源集(SourceSet)识别仪器化测试代码。默认路径是 src/androidTest/java/,且必须使用 androidTestImplementation 声明依赖(如 androidx.test.ext:junit:1.1.5),否则编译会通过,但运行时报 NoClassDefFoundError 或 ClassNotFoundException。

关键检查点:

  • 测试类必须带 @RunWith(AndroidJUnit4.class)(JUnit4)或 @RunWith(AndroidJUnitRunner.class)(JUnit5 需额外配置)
  • defaultConfig 中必须声明 testInstrumentationRunner,推荐用 "androidx.test.runner.AndroidJUnitRunner"
  • 如果用了自定义 Application 类,测试中需确保它没被意外替换或初始化失败(常见于 ContentProvider 初始化异常)

设备连不上?先确认这三件事

最常卡在这一步:命令执行后停住、报 No connected devices 或 INSTALL_FAILED_TEST_ONLY。不是 Gradle 问题,而是环境链断了。

Android SMS Gateway
Android SMS Gateway

自托管短信服务,使用 Android 手机作为网关提供 HTTP API,支持发送/接收短信,兼容主流短信网关。

下载
  • 运行 adb devices,输出里必须有 device 状态(不是 unauthorized 或空)。若为 unauthorized,去手机弹窗点“允许 USB 调试”
  • 确保设备开启了“USB 调试”和“USB 安装”(部分厂商如小米、华为需额外打开“MIUI 优化”或“开发者选项”里的开关)
  • 避免多设备混连:如果同时插了模拟器和真机,connectedCheck 默认选第一个,可用 adb -s shell getprop ro.build.version.release 确认目标设备;也可用 ANDROID_SERIAL=xxx ./gradlew connectedCheck 指定

测试跑完但没生成报告?检查 resultsDir 和权限

默认结果存于 build/androidTest-results/connected/,但 AGP 8.0+ 开始,报告生成依赖 testOptions 中的配置项是否显式启用。若目录为空,不是没跑,而是结果没写入。

在 android { testOptions { ... } } 块中加一句:

testOptions {
    unitTests.all {
        testLogging.events = ["passed", "skipped", "failed", "standardOut", "standardError"]
    }
    // 确保仪器化测试结果被采集
    execution 'ANDROIDX_TEST_ORCHESTRATOR' // 可选,提升稳定性
}

另外注意:某些 CI 环境(如 GitHub Actions)中,build/ 目录可能被清理或权限受限,导致写入失败——这时要显式设置 resultsDir = "$project.buildDir/test-results-android" 并确保路径可写。

真正麻烦的从来不是命令本身,而是设备状态、签名一致性、以及测试 APK 和主 APK 的 targetSdk 匹配问题——这三个地方出错,错误信息往往藏在 adb logcat 里,而不是 Gradle 输出中。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
android开发三大框架
android开发三大框架

android开发三大框架是XUtil框架、volley框架、ImageLoader框架。本专题为大家提供android开发三大框架相关的各种文章、以及下载和课程。

2023.08.14

922

4

android是什么系统
android是什么系统

Android是一种功能强大、灵活可定制、应用丰富、多任务处理能力强、兼容性好、网络连接能力强的操作系统。本专题为大家提供android相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.22

2747

5

android权限限制怎么解开
android权限限制怎么解开

android权限限制可以使用Root权限、第三方权限管理应用程序、ADB命令和Xposed框架解开。详细介绍:1、Root权限,通过获取Root权限,用户可以解锁所有权限,并对系统进行自定义和修改;2、第三方权限管理应用程序,用户可以轻松地控制和管理应用程序的权限;3、ADB命令,用户可以在设备上执行各种操作,包括解锁权限;4、Xposed框架,用户可以在不修改系统文件的情况下修改应用程序的行为和权限。

2023.09.19

5417

7

android重启应用的方法有哪些
android重启应用的方法有哪些

android重启应用有通过Intent、PendingIntent、系统服务、Runtime等方法。本专题为大家提供Android相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

705

5

Android语音播放功能实现方法
Android语音播放功能实现方法

实现方法有使用MediaPlayer实现、使用SoundPool实现两种。可以根据具体的需求选择适合的方法进行实现。想了解更多语音播放的相关内容,可以阅读本专题下面的文章。

2024.03.01

964

5

Java Maven/Gradle 构建与依赖管理合集
Java Maven/Gradle 构建与依赖管理合集

系统讲解 Java 项目构建工具的使用与进阶配置,涵盖 Maven 的 POM 文件结构、生命周期(clean/compile/package/install/deploy)与插件机制、依赖范围(compile/provided/test/runtime)与传递依赖管理、多模块聚合与继承、私有 Nexus 仓库发布,以及 Gradle 的 Groovy / Kotlin DSL 语法、Task 自定义与增量构建、依赖版本目录(Versi

2026.05.09

389

25

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

2026.10.28

80

16

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

2026.10.28

60

15

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

2026.10.28

220

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Gradle 9 主版本升级指南
Gradle 9 主版本升级指南

共0课时 | 0人学习

Gradle 安全最佳实践
Gradle 安全最佳实践

共0课时 | 0人学习

Gradle 依赖校验手册
Gradle 依赖校验手册

共0课时 | 0人学习