Android Studio项目单元测试触发位置及Gradle自动执行配置
Android单元测试触发方式与自动执行配置
一、Android Studio内手动触发单元测试的几种方式
- 通过Gradle面板运行任务:打开右侧Gradle面板,找到你的应用模块(通常是
app),展开Tasks > verification,双击testDebugUnitTest(Debug变体)或testReleaseUnitTest(Release变体)即可运行对应版本的单元测试。 - 右键单独运行测试:打开
src/test/java下的测试文件,右键点击测试类、单个测试方法或者文件空白处,选择Run 'XXXTest'就能单独执行这个测试类或方法。 - 通过菜单栏执行全量测试:点击顶部菜单栏
Run > Run 'All Tests',可以一次性执行所有单元测试。
二、持续集成系统中触发单元测试
在CI脚本(比如GitHub Actions、GitLab CI、Jenkins等)里,执行对应的Gradle命令就行:
- 跑所有变体的单元测试:
./gradlew test - 指定变体运行:
./gradlew testDebugUnitTest或者./gradlew testReleaseUnitTest
三、配置Gradle实现构建自动跑测试,失败即终止
默认情况下,构建任务(比如assembleDebug)不会自动触发单元测试,需要通过任务依赖来绑定,同时配置测试失败终止构建。在应用模块的build.gradle或build.gradle.kts里添加以下配置:
Groovy语法(build.gradle)
android { buildTypes { debug { // 构建Debug包前先跑Debug单元测试 tasks.named("assembleDebug").configure { dependsOn "testDebugUnitTest" } } release { // 构建Release包前先跑Release单元测试 tasks.named("assembleRelease").configure { dependsOn "testReleaseUnitTest" } } } } // 所有测试任务失败时终止构建 tasks.withType(Test) { // 第一个测试失败就停止执行,不浪费时间 failFast = true // 测试失败直接终止整个构建 ignoreFailures = false }
Kotlin语法(build.gradle.kts)
android { buildTypes { getByName("debug") { tasks.named("assembleDebug") { dependsOn("testDebugUnitTest") } } getByName("release") { tasks.named("assembleRelease") { dependsOn("testReleaseUnitTest") } } } } tasks.withType<Test> { failFast = true ignoreFailures = false }
补充说明:
- 如果想让
build这类全量构建任务触发所有测试,可以加一句tasks.named("build").configure { dependsOn "test" },但这样会跑所有变体的测试,耗时会更长。 failFast = true可以在第一个测试失败时就停止,避免无意义的后续测试;ignoreFailures = false确保测试失败时构建直接终止,不会生成APK。
内容的提问来源于stack exchange,提问作者Ralf Wickum
相关产品推荐
相关产品推荐

