测试时,Gradle似乎将stdout/stderr重定向到project_dir/build/reports/tests/index.html
。有没有办法避免这种重定向,并将事情打印到控制台?通过Gradle测试时记录日志
其他信息:
- 这是一个斯卡拉2.9.1项目。
- 我正在使用slf4s进行日志记录。
测试时,Gradle似乎将stdout/stderr重定向到project_dir/build/reports/tests/index.html
。有没有办法避免这种重定向,并将事情打印到控制台?通过Gradle测试时记录日志
其他信息:
apply plugin : 'java'
test {
testLogging.showStandardStreams = true
}
http://gradle.org/docs/current/dsl/org.gradle.api.tasks.testing.Test.html
这需要一个当前版本的Gradle。我假设Scala测试是在Java测试任务下运行的。
我用的也是(testLogging.exceptionFormat = 'full'
):
test {
testLogging.showStandardStreams = true
testLogging.exceptionFormat = 'full'
}
,这是很好看的堆栈跟踪多个
'exceptionFormat'设置对我有效,'showStandardStreams'没有效果! – Shakeel 2017-10-18 23:12:35
由于@roby回答:
添加以下代码到你的build.gradle
apply plugin : 'java'
test {
testLogging.showStandardStreams = true
}
重要!
您需要运行gradle测试或使用添加的clean
命令进行编译。
./gradlew clean test
or
./gradlew clean build
希望工程。
你能解释为什么需要“干净”吗? – 2017-07-04 07:52:41
@MichaelKanis,因为你已经改变了gradle配置。就我所知,gradle配置被缓存了。 – nmfzone 2017-07-04 20:21:34
@nmfzone这意味着您需要运行一次干净的测试来更新缓存。但在我的情况下,我需要每次运行干净的命令来显示控制台上的测试结果。即使在下面的运行中没有对gradle配置进行更改。 – 2017-07-30 04:22:58
这工作我:
test {
testLogging {
showStandardStreams = true
}
}
如果您是Android gradle这个文件中(如果apply plugin: 'com.android.application'
是在您的build.gradle文件的顶部)
然后将其粘贴到构建中。gradle这个
// Test Logging
tasks.withType(Test) {
testLogging {
events "standardOut", "started", "passed", "skipped", "failed"
}
}
我想补充的:
showStandardStreams = true
是shorthand为:
events = ["standard_out", "standard_error"]
是非常重要的两个条目混合为以下时,记住这一点:
test {
testLogging {
showStandardStreams = true
events = ["passed", "failed", "skipped"]
}
}
wil损益结果在没有标准输出,而相反的顺序:
test {
testLogging {
events = ["passed", "failed", "skipped"]
showStandardStreams = true
}
}
将在标准输出条目添加到列表中,这样标准输出将工作。
有关详细信息,请参阅the source。
刚刚测试过。不起作用。在测试它看起来像它不 – missingfaktor 2012-02-20 08:02:22
哎呦,这将产生输出我虽然: http://pastebin.com/PX8e1EKv 编辑:修改的println来打印,因为我认为事件捕获换行符 – roby 2012-02-20 09:13:18
感谢。我也会尝试。我在源文件中也有一些日志语句。我如何让他们打印到控制台? – missingfaktor 2012-02-20 09:42:46