如何从命令行将test.testLogging.showStandardStreams设置为true?

时间:2014-01-29 21:05:27

标签: gradle

通过查看stdout上的日志记录来编写单元测试时,可以方便地调试一些外部库甚至内部代码。

虽然我可以将test.testLogging.showStandardStreams = true添加到build.graddle文件中,但我宁愿做一些不那么永久的事情,比如从命令行执行gradle设置这个标志。

我尝试了几种方法,似乎都没有用:

gradle test -Dtest.testLogging.showStandardStreams=true
gradle test -Ptest.testLogging.showStandardStreams=true

通过更改属性字符串以及这些选项的其他变体。似乎没什么可做的。

如何从命令行设置test.testLogging.showStandardStreams=true

3 个答案:

答案 0 :(得分:7)

没有内置方法可以从命令行设置构建模型属性。您必须使构建脚本分别查询通过-D-P传入的系统或项目属性。

答案 1 :(得分:1)

您可以像这样覆盖它

gradle -Doverride.test.testLogging.info.showStandardStreams=true test

或者您可以将其添加到项目或gradle.properties中的~/.gradle/gradle.properties

systemProp.override.test.testLogging.info.showStandardStreams=true

答案 2 :(得分:0)

只需使用环境变量:

test {
    testLogging.showStandardStreams = (System.getenv('PRINTF_DEBUG') != null)
}

现在像这样运行测试用例:

PRINTF_DEBUG=1 ./gradlew test --tests=com.yourspace.yourtest

这将运行启用控制台输出 ,并且仅运行一个测试用例。由于产生的噪音,您通常不希望为整个测试套件启用控制台输出。