2013-08-05 244 views
12

我正在嘗試使用gradle的-Dtest.single標誌運行單個集成測試。我添加了另一個源文件集,src/integrationTest並將測試放在那裏。我有一個集成測試任務用gradle運行單個集成測試

task integrationTests(type: Test) { 
    dependsOn 'assemble', 'integrationTestClasses'  
    testClassesDir = sourceSets.integrationTest.output.classesDir 
    classpath = sourceSets.integrationTest.runtimeClasspath 
} 

這運行正常,但如果我嘗試運行一個測試它告訴我它無法找到匹配的測試。我不想每次編寫新的集成測試都要運行每個集成測試。有沒有辦法做到這一點?

回答

11

正確的語法是:

gradle testTaskName -DtestTaskName.single=...

在這種情況下:

gradle integrationTest -DintegrationTest.single=...

+1

謝謝,彼得。完美工作。 –

+0

當我嘗試,我得到這樣的: '$ gradlew -Dtest.single = SingleTest:子項目:測試 ... :buildSrc:測試失敗 失敗:建立失敗,一個例外。 出了什麼問題:執行任務':test'失敗。 模式找不到匹配測試:SingleTest' –

+0

也許你沒有這個名字的測試類? –

28

由於搖籃1.10,你可以寫:

//select specific test method 
gradle test --tests org.gradle.SomeTest.someFeature 

//select specific test class 
gradle test --tests org.gradle.SomeTest 

//select all tests from package 
gradle test --tests org.gradle.internal* 

//select all ui test methods from integration tests by naming convention 
gradle test --tests *IntegTest*ui* 

//selecting tests from different test tasks 
gradle test --tests *UiTest integTest --tests *WebTest*ui 

在這裏閱讀更多 http://www.gradle.org/docs/1.10/release-notes#executing-specific-tests-from-the-command-line

相關問題