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

Android Kotlin项目中JUnit 5 TestReporter测试报告无输出问题

JUnit 5 TestReporter在Android Kotlin项目无输出的解决方案

先明确测试类型

你的测试代码可能属于本地单元测试(放在src/test/java)或Instrumented设备测试(放在src/androidTest/java),两种场景的解决方式不同:


场景1:本地单元测试(src/test/java)

JUnit Jupiter的TestReporter输出默认不会直接显示在Android Studio的测试报告面板中,需要配置测试任务捕获输出:

  1. 打开模块的build.gradle(或build.gradle.kts),添加测试日志配置:
    Groovy版本:
    tasks.withType(Test) {
        testLogging {
            events "passed", "skipped", "failed", "standardOut", "standardError"
            showStandardStreams = true
            displayGranularity = 2
        }
    }
    
    Kotlin DSL版本:
    tasks.withType<Test> {
        testLogging {
            events("passed", "skipped", "failed", "standardOut", "standardError")
            showStandardStreams = true
            displayGranularity = 2
        }
    }
    
  2. 重新运行测试后,TestReporter的内容会出现在测试的Standard Output区域,或测试日志详情中。

场景2:Instrumented设备测试(src/androidTest/java)

需要确保JUnit 5的Android运行器配置正确:

  1. 在build.gradle(或build.gradle.kts)的android.defaultConfig中指定测试运行器:
    Groovy版本:
    android {
        defaultConfig {
            testInstrumentationRunner "de.mannodermaus.junit5.AndroidJUnit5TestRunner"
        }
    }
    
    Kotlin DSL版本:
    android {
        defaultConfig {
            testInstrumentationRunner = "de.mannodermaus.junit5.AndroidJUnit5TestRunner"
        }
    }
    
  2. 确认依赖版本兼容:你当前使用的junit-jupiter-api:5.9.0与android-test-core:1.3.0是兼容的,无需调整版本。
  3. 运行Instrumented测试后,TestReporter的输出会显示在测试的日志详情里。

通用检查项

  • 确保测试方法上的@Test注解是org.junit.jupiter.api.Test,而非JUnit 4的org.junit.Test。
  • 运行测试时选择正确的测试类型:本地单元测试选「Run ... (test)」,Instrumented测试选「Run ... (androidTest)」。

内容的提问来源于stack exchange,提问作者Saher Al-Sous

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 10:45:46