2011-04-01 70 views
10

我試圖修復我們凌亂的測試運行失敗,不幸的是,我對gradle很陌生。我們現在有testng,junit,並且我想爲混合添加一些spock測試。我不太確定當我輸入「gradle test」時,gradle如何確定運行哪些測試。我如何防止testng & /或junit測試運行?我怎樣才能讓gradle開始運行我的spock測試?選擇特定的測試在gradle中運行

回答

14

默認情況下,test任務運行它可以找到的所有JUnit測試,其中包括任何Spock測試。爲了使其運行TestNG進行替代,將任務配置如下:

test { 
    useTestNG() 
} 

如果你有兩個JUnit和TestNG的測試,你需要兩個測試任務,每一個測試框架。

要運行測試的子集,請使用-Dtest.single系統屬性。有關更多信息,請參見Gradle User Guide中的相應部分。

+0

我看着你所引用的文件,但它是相當混亂。例如,地球上做什麼: 「gradle -Dtest.single = a/b/test」 是什麼意思?我試圖阻止運行標準junit測試,但運行spock和testng測試。我沒有任何運氣。 – 2011-04-04 18:06:01

+2

從文檔:該testNamePattern將被用於形成'**/testNamePattern * .class'的包括圖案。因此'a/b /'選擇包'a.b'下的所有測試類。 (請注意,'了'不一定必須是根包)。 運行斯波克和TestNG但不是JUnit測試,則需要兩個任務(如上所述),並配置了JUnit任務只是包括Spock測試(通過包或類命名約定)。 – 2011-04-05 07:38:00

3
$> gradle test -Dtest.single=YourTestClass 
0

您可以提供使用命令行:

$> gradle test --tests org.somewhere.MyTestClass 

甚至

$> gradle test --tests org.somewhere.MyTestClass.my_test_case