2014-04-09 37 views
1

我們的Gradle構建文件中有一個名爲integration的任務,它擴展了Test並用於運行所有集成測試。我們的集成測試需要相當長的一段時間才能運行,因爲我們可以像您期望的那樣有很多。由於冗長的數據庫交互,他們中的幾個人可以運行長達10分鐘。Gradle Test,運行詳細?

現在我只能看到他們運行的是>Building > :integration。它在很長的一段時間內處於這一點。我常常不確定它是否處於一堆長時間測試的中間,或者是否掛在了一些本來不應該掛在其上的東西上。

所以,我想知道是否有辦法讓他們運行冗長?所以我可以看到我們實際上在進行哪項測試?我只是想在命令行吐出這樣的:

Running test <testName>: Started...Complete (231 sec) 

我已經通過搖籃文檔看了看,什麼也沒有看到,顯示這是如何做。當然,我在這方面有點新,所以...如果有人有一個想法如何做到這一點?我寧願有一個標誌只是做它,但如果它可以用一些腳本來完成,我願意學習。只要指出我的方向...

+0

請參閱[Gradle Build Language Reference]中的Test#testLogging(http://gradle.org/docs/current/dsl/index.html)。 –

回答

1

看看this DSL文檔。一般來說,你需要的是利用beforeTestafterTest關閉。您可以將調用的開始保留在全局地圖中。

def times = [:] 

test { 
    beforeTest { td -> 
     times[td.name] = System.currentTimeMillis() 
     println "$td.name started" 
    } 

    afterTest { td -> 
     println "$td.name finished in ${System.currentTimeMillis() - times[td.name]}" 
    } 
} 

我不確定這是否同步。你需要嘗試。

+1

如果您只希望將此輸出用於集成測試,請將其添加到「集成」任務而不是「測試」任務。 – Steinar