You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多变体多构建类型Android项目:指定Staging构建执行测试

解决Jenkins仅用Staging构建类型执行Android测试的问题

没问题,我帮你梳理两种靠谱的方案,让Jenkins只在Staging构建类型下跑你的单元测试和Espresso测试:

方案1:直接在Jenkins构建命令中指定Staging测试任务

这是最灵活的方式,不用修改项目代码,直接在Jenkins的构建步骤里执行针对性的Gradle命令:

  • 要运行Staging构建类型的单元测试,执行:
    ./gradlew testStagingUnitTest
    
  • 要运行Staging构建类型的Espresso UI测试(需要连接模拟器/真机),执行:
    ./gradlew connectedStagingAndroidTest
    
  • 如果想一次性跑两种测试,把命令合并:
    ./gradlew testStagingUnitTest connectedStagingAndroidTest
    

Gradle的命名规则很清晰:test[BuildType]UnitTest对应单元测试,connected[BuildType]AndroidTest对应设备上的UI测试,替换[BuildType]为你的Staging就行。

方案2:在Gradle配置中禁用其他构建类型的测试任务

如果你想从项目层面限制,避免误跑其他构建类型的测试,可以修改app模块的build.gradle文件,禁用Debug/Release等构建类型的测试任务:

android {
    buildTypes {
        release {
            // 保留你原有的Release配置
            testCoverageEnabled false
            // 禁用Release的单元测试
            tasks.named("testReleaseUnitTest").configure {
                enabled = false
            }
            // 禁用Release的Espresso测试
            tasks.named("connectedReleaseAndroidTest").configure {
                enabled = false
            }
        }
        debug {
            // 保留你原有的Debug配置
            // 禁用Debug的单元测试
            tasks.named("testDebugUnitTest").configure {
                enabled = false
            }
            // 禁用Debug的Espresso测试
            tasks.named("connectedDebugAndroidTest").configure {
                enabled = false
            }
        }
        staging {
            // 保留你原有的Staging配置,比如继承Debug的配置
            initWith debug
            // 确保Staging的测试任务处于启用状态(默认就是启用的,这里可写可不写)
            tasks.named("testStagingUnitTest").configure {
                enabled = true
            }
            tasks.named("connectedStagingAndroidTest").configure {
                enabled = true
            }
        }
    }
}

配置后,当你在Jenkins中执行./gradlew test connectedAndroidTest时,只会跑Staging的测试任务了。不过这个方案的灵活性稍差,以后如果要跑其他构建类型的测试,需要临时修改Gradle配置。

额外提醒

  • 确保Jenkins的构建环境已经配置好Android SDK,并且能正常连接模拟器(或者用云真机服务)来运行Espresso测试。
  • 如果你的Staging构建类型有特殊的API模拟配置,要确保Jenkins构建时能加载对应的配置(比如gradle.properties里的参数,或者构建变体的资源文件)。

内容的提问来源于stack exchange,提问作者Adeel Turk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:49:20