Gradle測試


測試任務自動檢測和執行測試源集合中的所有單元測試。它還會在測試執行完成後生成報告。 JUnitTestNG都是支援的API。

測試任務提供了一個Test.set Debug()方法,可以將其設定為啟動JVM等待偵錯器。在繼續執行之前,它將偵錯器發布值設定為5005

測試檢測

測試任務通過檢查編譯的測試類來檢測哪些類是測試類。 預設情況下,它掃描所有.class檔案。不過也可以設定自定義包含/排除,只有那些類才會被掃描。根據所使用的測試框架(JUnit / TestNG),測試類檢測使用不同的標準。

如果不想使用測試類檢測,可以通過將scanForTestClasses設定為false來禁用它。

測試分組

JUnitTestNG允許複雜的測試方法分組。對於分組,JUnit有測試類和方法。JUnit 4.8引入了類別的概念。測試任務允許指定要包括或排除的JUnit類別。

可以使用build.gradle檔案中的以下程式碼段對測試方法進行分組。如下程式碼所示 -

test {
   useJUnit {
      includeCategories 'org.gradle.junit.CategoryA'
      excludeCategories 'org.gradle.junit.CategoryB'
   }
}

包括和排除指定測試

Test類有一個includeexclude方法。這些方法可以用於指定哪些測試應該執行。
只執行包含的測試 -

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