我在使用gradle運行junit測試時如何獲得顯示日誌輸出的良好信息時遇到了很多問題。爲了保持獨立於Logger的狀態,我在我的項目中使用Apache commons-logging。從測試中轉發公用日誌消息
現在我發現了這一點,但它並沒有真正說明什麼:Gradle java.util.logging.Logger output in unit tests
隨着http://gradle.org/logging我得到一個很好的瞭解如何從gradle這個任務日誌,而不是如何從我的測試顯示日誌消息。
gradle -i
也不是我所期待的。雖然這給了我一些有關測試的信息,但它並沒有給我日誌輸出。
我很欣賞任何正確的方向提示。
編輯(在這裏做它,因爲它是一個相當長的回答彼得的答案):
添加
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日誌記錄混合在一起),但這已經足夠了。
感謝提示,彼得。看到我上面的答案(很長,所以我不得不把它放在那裏)。 – rweng