通过查看stdout上的日志记录来编写单元测试时,可以方便地调试一些外部库甚至内部代码。
虽然我可以将test.testLogging.showStandardStreams = true
添加到build.graddle文件中,但我宁愿做一些不那么永久的事情,比如从命令行执行gradle设置这个标志。
我尝试了几种方法,似乎都没有用:
gradle test -Dtest.testLogging.showStandardStreams=true
gradle test -Ptest.testLogging.showStandardStreams=true
通过更改属性字符串以及这些选项的其他变体。似乎没什么可做的。
如何从命令行设置test.testLogging.showStandardStreams=true
?
答案 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
这将运行启用控制台输出 ,并且仅运行一个测试用例。由于产生的噪音,您通常不希望为整个测试套件启用控制台输出。