如何配置先在JVM执行单元测试再启动Android应用?
先执行JVM单元测试再构建运行应用的配置方案
你的问题出在Unit Tests构建配置可能绑定了需要设备的测试任务,而JVM单元测试不需要模拟器/物理设备。按下面的步骤配置就能实现「先跑单元测试,通过后再启动应用」的需求:
方法一:用Compound构建配置(可视化操作)
- 打开Android Studio的Edit Configurations(右上角运行配置下拉菜单中找到)
- 选中你创建的Compound构建,修改任务列表:
- 先添加Gradle任务:选择app模块,任务输入
testDebugUnitTest(如果使用release变体,就改成testReleaseUnitTest) - 再添加你的默认
app运行配置 - 务必勾选「Execute tasks in order」,确保单元测试通过后才执行后续步骤
- 先添加Gradle任务:选择app模块,任务输入
方法二:通过Gradle任务依赖(代码配置)
直接修改app模块的build.gradle文件,给app的运行任务添加依赖,这样每次点击运行都会自动先执行单元测试:
// 让debug版本的安装任务依赖单元测试任务 tasks.named('installDebug') { dependsOn 'testDebugUnitTest' } // 如果是直接运行app的任务,也添加依赖 tasks.named('runDebug') { dependsOn 'testDebugUnitTest' }
注意事项
- 区分任务类型:JVM单元测试任务以
test开头,无需设备;Instrumented集成测试任务以connectedAndroidTest开头,必须依赖设备。如果后续要添加集成测试,可将connectedDebugAndroidTest加到Compound配置的中间步骤,执行顺序变为「单元测试 → 集成测试 → 运行应用」 - 确保你的单元测试任务是纯JVM任务,没有绑定设备运行相关配置
内容的提问来源于stack exchange,提问作者Alon Shlider
相关产品推荐
相关产品推荐

