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

Gradle构建运行时如何让单元测试中的Java代码输出内容到构建日志

Gradle单元测试Java日志输出配置方案

Gradle默认会拦截单元测试进程的标准输出、以及低于LIFECYCLE级别的日志,不会直接打印到构建控制台,按以下配置即可开启对应内容的展示:

1. 显示System.out/System.err打印内容

在项目的build.gradle配置文件中修改test任务配置即可:

Groovy语法版本

test {
    testLogging {
        // 开启标准输出、错误流的打印
        showStandardStreams = true
    }
}

Kotlin DSL(build.gradle.kts)版本

tasks.test {
    testLogging {
        showStandardStreams = true
    }
}

配置生效后,单元测试中所有System.out.println、System.err.println的内容都会直接输出到Gradle控制台。

2. 显示SLF4J等日志框架的debug/info级别日志

如果需要打印日志框架输出的内容,除了上面的配置外,还需要额外调整日志级别配置:

固定配置到项目中

在test任务中补充以下配置:

Groovy语法版本

test {
    testLogging {
        showStandardStreams = true
        // 调整日志输出粒度,0为最细
        minGranularity = 0
        // 配置需要输出的事件类型,包含标准流、测试结果事件
        events "PASSED", "SKIPPED", "FAILED", "STANDARD_OUT", "STANDARD_ERROR"
    }
    // 如果使用slf4j-simple作为日志实现,可通过系统参数指定默认日志级别
    systemProperty "org.slf4j.simpleLogger.defaultLogLevel", "debug"
}

Kotlin DSL版本

tasks.test {
    testLogging {
        showStandardStreams = true
        minGranularity = 0
        events("PASSED", "SKIPPED", "FAILED", "STANDARD_OUT", "STANDARD_ERROR")
    }
    systemProperty("org.slf4j.simpleLogger.defaultLogLevel", "debug")
}

临时查看无需修改配置

如果只是单次执行测试需要查看日志,直接在gradle命令后加参数即可:

  • 执行./gradlew test -i 开启INFO级别输出,可展示info及以上级别的日志
  • 执行./gradlew test -d 开启DEBUG级别输出,可展示所有级别的日志,输出内容更全面但日志量较大

注意事项

  • 如果项目中存在单独的测试日志配置文件(如logback-test.xml、log4j2-test.xml),需要确保配置文件中对应包的日志级别设置为debug/info,否则日志依然会被日志框架本身拦截不输出。
  • 所有测试相关的输出都会默认保存在项目build/reports/tests/test目录下的测试报告中,即使控制台没有开启输出,也可以直接打开报告查看对应测试用例的打印内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 13:45:07