2013-10-23 158 views
3

我們正在將一些ant構建腳本遷移到gradle,並且一直在診斷問題。出現的一個問題是,在CI服務器上(jenkins運行gradle),我們偶爾會遇到測試失敗。我們認爲該問題與測試執行順序有關,因爲其中一個失敗的測試在某些庫代碼中使用線程本地存儲。Gradle可以按特定順序運行兩個測試嗎?

我希望能夠在修復破損的測試之前在本地重現問題。然而。我無法在本地重現問題,因爲gradle總是按照恰好工作的順序運行測試。

那麼,有沒有辦法強制gradle在測試類Y之前運行測試類X?測試需要在同一個JVM中運行 - 一個接一個地測試。

萬一它很重要,測試是JUnit測試。

回答

1

是的,這是可能的。其中一個可能性是創建測試Y的額外任務運行

task YTest(type: Test) { 
    include '**/Y.*' 
} 

test { 
    exclude '**/Y.*' 
} 

test.dependsOn YTest 
+0

我相信這些將運行在兩個不同的gradle「工作者」上,因爲他們是兩個不同的測試任務而不是相同的jvm實例。我需要他們在同一個jvm。 – clucas

1

testNG(一個Junit的替代品,也支持gradle)也允許你控制測試順序。有關更多詳細信息,請參見this post

相關問題