2015-02-05 70 views
7

我最近更新了一個Grails 2.2項目到2.4.4,我發現當運行'grails test-app'時,所有的日誌消息(信息,調試,錯誤等)現在都輸出到控制檯,而不是到生成的測試報告。如何將日誌消息重定向到Grails 2.4.x +中的測試報告?

以前所有的日誌輸出都會附加到測試報告的主體中,我只會在控制檯上收到測試結果。現在,默認行爲是將日誌消息打印到控制檯中,以便在運行數百個測試時難以解析輸出。

| Compiling 1 source files.... 
| Running 2 unit tests... 1 of 2 
2015-02-05 12:16:53,965 [main] INFO testapp.HelloController - Hello World Log 
| Completed 1 unit test, 0 failed in 0m 5s 
| Tests PASSED - view reports in /Users/pk/workspace/testapp/target/test-reports 

我已經確認這是Grails 2.4.4的默認行爲(可能在此之前的某個時間)。有趣的是,通過'println'命令直接打印到stdout的消息出現在日誌文件中。

有誰知道如何改變這種行爲打印所有日誌輸出到測試報告,而不是控制檯?

+0

我有相同的問題,最後一次測試。你找到了解決方案嗎? – Fernando 2015-04-23 01:37:05

+0

你能告訴我們你的'grails-app/conf/Config.groovy'文件嗎? – 2016-01-05 17:03:53

+0

可能是一個Gradle事物。檢查是否添加'testLogging.showStandardStreams = false'解決問題 – Raffaele 2016-01-07 15:21:00

回答

-1

添加-echoOut開關的grails測試應用程式內,https://grails.org/wiki/1.2%20Release%20Notes

grails test-app -echoOut 

有許多上測試應用程式內其他有用的開關,以及包括:

回波System.err的消息:

grails test-app -echoErr 

力運行測試(不這樣做的Grails乾淨& & Grails的測試應用程序)之前清潔:

grails test-app -clean 

只運行單元測試:

grails test-app unit: 

只運行集成測試:

grails test-app integration: 

在特定的環境中運行:只針對特定

grails -Dgrails.env=production test-app 

運行測試測試類(如com.foo.MyControllerTest S),一定要留掀起的「測試」後綴

grails test-app com.foo.MyController 

只重新運行失敗,你跑你的測試

grails test-app to output to console

+0

不幸的是,這不會改變行爲,-echoOut標誌將日誌輸出發送到標準輸出但不發送到測試報告。我正在尋找的是將日誌消息記錄到測試報告中,而不是stdout,這是2.2和更低版本中的默認行爲。 – 2016-01-06 17:38:46

相關問題