2011-09-07 298 views
5

運行單元測試時,Gradle可以並行執行多個測試,而不會對測試本身(即特殊註釋,測試運行器等)進行任何更改。我想用螞蟻做同樣的事情,但我不知道如何。並行運行JUnit測試

我見過this question但沒有一個答案真的吸引我。它們或者涉及到帶有ant-contrib的黑客,使用@RunWith註釋設置的特殊跑步者,一些其他特殊註釋等。我也瞭解TestNG,但是我不能讓Eclipse插件遷移我們的測試 - 並且我們有大約10,000個,所以我不是親手做的!

Gradle不需要任何東西,所以我如何在螞蟻中做到這一點?我想Gradle使用了一個特殊的跑步者,但是如果是這樣的話,它會被設置爲JUnit設置的一部分,並且在每個測試中都沒有提及。如果是這樣的話,那很好。我只是不想去修改c。 10,000個單元測試!

回答

6

Gradle並未嚴格意義上使用特殊的JUnit跑步者。它「簡單地」有一個複雜的測試任務,知道如何啓動多個JVM,在每個JVM中運行測試類的子集(通過調用JUnit),並將結果報告給執行構建的JVM。這些結果被彙總起來,使它看起來像一個單一的JVM,單線程的測試執行。這甚至適用於定義他們自己的測試監聽器的構建。

要在Ant中執行並行測試,您需要一個支持此功能的Ant任務(不確定是否存在)。另一種方法是將Ant構建導入Gradle(ant.importBuild "build.xml")並在Gradle端添加測試任務。

+0

嗯,這是一個有趣的想法。我很驚訝,這樣的事情在螞蟻中並不存在,說實話。 – dty