Gradle多KMP项目执行check命令时仅运行单个模块测试的问题
问题原因
Gradle 默认采用失败即终止的任务执行策略:构建过程中只要有任意一个任务执行失败,就会立即中断整个构建流程,不再执行后续未调度的任务。
你的项目中 ProjectB 依赖 ProjectD,任务执行顺序会先完成 ProjectD 的编译、打包等构建前置任务供 ProjectB 依赖使用,随后执行 ProjectB 的测试任务。ProjectB 测试执行失败后构建直接中断,还未调度到 ProjectD 的测试任务,就会出现你遇到的现象。
解决方法
两种方案可实现所有模块测试正常执行,不受单个模块测试失败影响:
- 单次执行添加参数:运行
gradle check时额外加上--continue标识
该标识会让 Gradle 遇到任务失败时,仍然继续执行所有不依赖该失败任务的其他任务,最终统一汇总所有失败信息。gradle check --continue - 全局默认生效:在根项目的
gradle.properties文件中添加如下配置,后续所有 Gradle 命令默认启用该规则org.gradle.continue=true
内容的提问来源于stack exchange,提问作者Jordi
相关产品推荐
相关产品推荐

