如何让jacocoTestReport仅记录失败测试,屏蔽通过测试日志?
解决Jacoco测试报告日志冗余问题
给你两个可行方案,都能实现只输出失败测试的相关日志:
方案一:修改Gradle测试任务的日志配置
直接在项目的build.gradle(Groovy)或build.gradle.kts(Kotlin)里配置test任务的日志规则,让它只打印失败用例的信息:
Groovy版本(build.gradle)
test { testLogging { // 仅记录失败事件 events 'failed' // 输出完整异常栈信息 exceptionFormat 'full' } }
Kotlin版本(build.gradle.kts)
tasks.test { testLogging { events = setOf(TestLogEvent.FAILED) exceptionFormat = TestExceptionFormat.FULL } }
配置后,Gradle只会在测试失败时输出对应类、方法的详细失败信息,通过的测试不会再生成ClassName > MethodName(MethodArguments) PASSED这类日志。
方案二:在GitHub Action中过滤日志输出
如果不想修改项目配置,也可以在GitHub Action的执行步骤里,通过shell命令过滤掉包含PASSED的日志行:
- name: Generate Jacoco Test Report run: ./gradlew jacocoTestReport 2>&1 | grep -v "PASSED"
如果担心误过滤其他含PASSED的无关内容,可以用更精确的匹配规则:
- name: Generate Jacoco Test Report run: ./gradlew jacocoTestReport 2>&1 | grep -v " > .* PASSED"
内容的提问来源于stack exchange,提问作者oreid
相关产品推荐
相关产品推荐

