在使用gradle运行junit测试时,我很难找到有关如何显示Logging输出的详细信息。为了保持与Logger无关,我在项目中使用Apache commons-logging。
现在我找到了这个,但它并没有真正解释任何事情:Gradle java.util.logging.Logger output in unit tests
使用http://gradle.org/logging我很好地理解了如何从gradle任务中记录,而不是如何从我的测试中显示记录消息。
gradle -i
也不是我想要的。虽然这给了我一些关于测试的信息,但它没有给我记录输出。
我很欣赏正确方向的任何提示。
编辑(这是在这里做的,因为对Peter的回答是相当长的回答):
添加
test {
testLogging.showStandardStreams = true
}
工作,有点儿。这是Gradle 1.0-milestone-6功能,所以我首先必须升级Gradle。
然后,找不到我在src / test / java文件夹中的log4j.properties。添加
sourceSets.test.runtimeClasspath += files(sourceSets.test.java.srcDirs)
到build.gradle文件至少使警告静音,但我没有记录输出。我的log4j.xml应该不是问题,它在IDE中有效:
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p %c{1} - %m%n"/>
</layout>
</appender>
<root>
<priority value="info"/>
<appender-ref ref="console"/>
</root>
</log4j:configuration>
为了完整起见,我用Google搜索showStandardStream并找到了我应该找到的信息:http://gradle.org/current/docs/dsl/org.gradle.api.tasks.testing.Test.html
问题仍然存在,因为它似乎不起作用:)
EDIT2:
现在gradle test -i
打印记录信息输出。虽然它不是我想要的(因为它与gradle日志记录混合),但这已经足够了。
答案 0 :(得分:2)
您可以将test.testLogging.showStandardStreams
设置为true
,然后确保将测试日志记录打印到std out。这将使日志记录输出同时出现在命令行和测试报告中。