【问题标题】:Gradle: How to get output from test STDERR/STDOUT into console?Gradle:如何从测试 STDERR/STDOUT 获取输出到控制台?
【发布时间】:2017-04-18 15:38:15
【问题描述】:

(Gradle 3.2.1) 我运行了一些 java 测试,它们在 Stderr/Stdout 中记录输出。如果我开始,我可以看到该输出

gradle test --info

但在这种情况下,来自 3-rd 方库的许多不需要的输出也存在。

Documentation 建议使用logging.caputureStandardError / logging.caputureStandardError (loglevel),但似乎没有任何效果。

tasks.withType(Test) {
   logging.captureStandardOutput LogLevel.QUIET
   logging.captureStandardError LogLevel.QUIET
}

那么如果运行gradle test,控制台输出的不是STDERR/STDOUT。

如何在控制台中仅获取测试类的输出?

【问题讨论】:

    标签: testing gradle stdout stderr


    【解决方案1】:

    对于使用 Kotlin/Kotlin DSL for Gradle 的用户,您需要将以下内容放入您的 build.gradle.kts 文件中:

    tasks.withType<Test> {
        this.testLogging {
            this.showStandardStreams = true
        }
    }
    

    正如另一个答案中提到的,您每次都需要运行gradle clean test 才能打印输出。

    【讨论】:

    • 谢谢哥们。很难找到 Gradle 代码的 Kotlin DSL 等价物。
    • outputs.upToDateWhen {false} 可以添加到上述响应中以避免运行gradle clean test。只要gradle test 应该可以工作
    【解决方案2】:

    将这些行添加到build.gradle

    apply plugin: 'java'
    
    test {
        dependsOn cleanTest
        testLogging.showStandardStreams = true
    }
    

    注意:dependsOn cleanTest 不是必需的,但如果不使用,你需要在test 任务之前运行cleanTestclean 任务。


    编辑:

    更好的方法:

    apply plugin: 'java'
    
    test {
        testLogging {
            outputs.upToDateWhen {false}
            showStandardStreams = true
        }
    }
    

    注意:outputs.upToDateWhen {false} 不是必需的,但如果不使用,您需要在test 任务之前运行cleanTestclean 任务。

    有关更多信息和选项,请参阅the documentation

    【讨论】:

    • @Omid 有没有办法在命令行上执行此操作。我可能不想编辑我的build.gradle 文件,并且暂时想查看标准流。我可以做类似-Dtest.testLogging.showStandardStreams=true 的事情吗?
    • @Kilokahn 我认为基于this quesion,答案是否定的。
    • 实际上,在保持build.gradle 不变的同时改变Gradle 行为的一种解决方案是初始化脚本。您甚至可以在那里检查项目或系统属性,以检查是否应更改测试任务的配置。
    • 您在哪里找到有关outputs 选项的信息?我在您链接的文档中没有看到它。
    • 这在 IntelliJ (JUnitPlatform) 中没有任何作用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    • 2011-02-10
    • 1970-01-01
    • 2011-04-22
    • 2017-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多