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

Bil*_*oor 8 gradle

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

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

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

gradle test -Dtest.testLogging.showStandardStreams=true
gradle test -Ptest.testLogging.showStandardStreams=true
Run Code Online (Sandbox Code Playgroud)

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

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

Pet*_*ser 7

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


Gui*_*ohr 5

只需使用环境变量:

test {
    testLogging.showStandardStreams = (System.getenv('PRINTF_DEBUG') != null)
}
Run Code Online (Sandbox Code Playgroud)

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

PRINTF_DEBUG=1 ./gradlew test --tests=com.yourspace.yourtest
Run Code Online (Sandbox Code Playgroud)

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