Gradle:如何从测试STDERR / STDOUT输出到控制台?

时间:2016-12-04 00:18:50

标签: testing gradle stdout stderr

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

gradle test --info

但在这种情况下,第3方文库的大量不需要的输出也是如此。

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

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

然后,如果运行gradle test,则不会在控制台中输出STDERR / STDOUT。

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

2 个答案:

答案 0 :(得分:39)

将这些行添加到build.gradle

apply plugin: 'java'

test {
    dependsOn cleanTest
    testLogging.showStandardStreams = true
}

编辑:

更好的方法:

apply plugin: 'java'

test {
    testLogging {
        outputs.upToDateWhen {false}
        showStandardStreams = true
    }
}

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

有关详细信息和选项,请参阅the documentation

答案 1 :(得分:1)

对于将kotlin / kotlin dsl用于gradle的用户,您需要将以下内容放入build.grade.kts文件中:

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

也如另一个答案中所述,您将需要运行“ gradle clean test”,以便每次打印输出。