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

如何在Android Instrumentation测试中使用官方JUnit5(Jupiter)依赖?

解决JUnit5官方依赖在Android Instrumentation测试中的构建冲突

步骤1:拆分引入官方JUnit5依赖

避免直接引入聚合包junit-jupiter导致重复依赖,拆分引入核心组件,减少冲突概率:

androidTestImplementation "org.junit.jupiter:junit-jupiter-api:$junit_jupiter_version"
androidTestRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junit_jupiter_version"
androidTestImplementation "org.junit.jupiter:junit-jupiter-params:$junit_jupiter_version"
androidTestImplementation "org.junit.platform:junit-platform-launcher:$junit_platform_version"

注意:junit_jupiter_version和junit_platform_version需保持版本匹配(例如JUnit5 5.9.x对应JUnit Platform 1.9.x)

步骤2:配置packagingOptions处理重复文件冲突

在模块级build.gradle的android代码块中添加打包配置,解决META-INF/LICENSE.md重复问题:

android {
    // 其他已有配置...

    packagingOptions {
        // 合并所有重复的许可证文件
        merge 'META-INF/LICENSE.md'
        // 若无需打包许可证文件,也可直接排除
        // exclude 'META-INF/LICENSE.md'
    }
}

步骤3:配置JUnit5测试运行器

Android默认测试运行器不支持JUnit5,需添加运行器依赖并配置:

1. 添加运行器依赖

androidTestImplementation "org.junit.platform:junit-platform-runner:$junit_platform_version"

2. 配置运行器

  • 单测试类配置:在测试类头部添加注解指定运行器
import org.junit.platform.runner.JUnitPlatform;
import org.junit.runner.RunWith;

@RunWith(JUnitPlatform.class)
public class YourInstrumentedTest {
    // 测试代码逻辑
}
  • 全局配置:在build.gradle的defaultConfig中统一设置
android {
    defaultConfig {
        // 其他已有配置...
        testInstrumentationRunner "org.junit.platform.runner.JUnitPlatform"
    }
}

注意事项

  • 该方案完全基于官方依赖实现,但需要手动处理运行器适配和打包冲突,相比第三方封装方案(如mannodermaus)更繁琐
  • 合并/排除许可证文件不会影响测试功能,仅调整打包内容

内容的提问来源于stack exchange,提问作者Ali Doran

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 10:18:33