測試任務自動檢測和執行測試源集合中的所有單元測試。它還會在測試執行完成後生成報告。 JUnit和TestNG都是支援的API。
測試任務提供了一個Test.set Debug()
方法,可以將其設定為啟動JVM
等待偵錯器。在繼續執行之前,它將偵錯器發布值設定為5005
。
測試任務通過檢查編譯的測試類來檢測哪些類是測試類。 預設情況下,它掃描所有.class
檔案。不過也可以設定自定義包含/排除,只有那些類才會被掃描。根據所使用的測試框架(JUnit
/ TestNG
),測試類檢測使用不同的標準。
如果不想使用測試類檢測,可以通過將scanForTestClasses
設定為false
來禁用它。
JUnit
和TestNG
允許複雜的測試方法分組。對於分組,JUnit
有測試類和方法。JUnit 4.8
引入了類別的概念。測試任務允許指定要包括或排除的JUnit
類別。
可以使用build.gradle
檔案中的以下程式碼段對測試方法進行分組。如下程式碼所示 -
test {
useJUnit {
includeCategories 'org.gradle.junit.CategoryA'
excludeCategories 'org.gradle.junit.CategoryB'
}
}
Test
類有一個include
和exclude
方法。這些方法可以用於指定哪些測試應該執行。
只執行包含的測試 -
test {
include '**my.package.name/*'
}
跳過排除的測試 -
test {
exclude '**my.package.name/*'
}
以下程式碼中所示的build.gradle
範例檔案顯示了不同的組態選項。
apply plugin: 'java' // adds 'test' task
test {
// enable TestNG support (default is JUnit)
useTestNG()
// set a system property for the test JVM(s)
systemProperty 'some.prop', 'value'
// explicitly include or exclude tests
include 'org/foo/**'
exclude 'org/boo/**'
// show standard out and standard error of the test JVM(s) on the console
testLogging.showStandardStreams = true
// set heap size for the test JVM(s)
minHeapSize = "64m"
maxHeapSize = "512m"
// set JVM arguments for the test JVM(s)
jvmArgs '-XX:MaxPermSize=256m'
// listen to events in the test execution lifecycle
beforeTest {
descriptor → logger.lifecycle("Running test: " + descriptor)
}
// listen to standard out and standard error of the test JVM(s)
onOutput {
descriptor, event → logger.lifecycle
("Test: " + descriptor + " produced standard out/err: "
+ event.message )
}
}
可以使用以下命令語法來執行一些測試任務。
gradle <someTestTask> --debug-jvm