測試時,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