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的测试报告面板中,需要配置测试任务捕获输出:
- 打开模块的
build.gradle(或build.gradle.kts),添加测试日志配置:
Groovy版本:
Kotlin DSL版本:tasks.withType(Test) { testLogging { events "passed", "skipped", "failed", "standardOut", "standardError" showStandardStreams = true displayGranularity = 2 } }tasks.withType<Test> { testLogging { events("passed", "skipped", "failed", "standardOut", "standardError") showStandardStreams = true displayGranularity = 2 } } - 重新运行测试后,TestReporter的内容会出现在测试的Standard Output区域,或测试日志详情中。
场景2:Instrumented设备测试(src/androidTest/java)
需要确保JUnit 5的Android运行器配置正确:
- 在
build.gradle(或build.gradle.kts)的android.defaultConfig中指定测试运行器:
Groovy版本:
Kotlin DSL版本:android { defaultConfig { testInstrumentationRunner "de.mannodermaus.junit5.AndroidJUnit5TestRunner" } }android { defaultConfig { testInstrumentationRunner = "de.mannodermaus.junit5.AndroidJUnit5TestRunner" } } - 确认依赖版本兼容:你当前使用的
junit-jupiter-api:5.9.0与android-test-core:1.3.0是兼容的,无需调整版本。 - 运行Instrumented测试后,TestReporter的输出会显示在测试的日志详情里。
通用检查项
- 确保测试方法上的
@Test注解是org.junit.jupiter.api.Test,而非JUnit 4的org.junit.Test。 - 运行测试时选择正确的测试类型:本地单元测试选「Run ... (test)」,Instrumented测试选「Run ... (androidTest)」。
内容的提问来源于stack exchange,提问作者Saher Al-Sous
相关产品推荐
相关产品推荐

