Gradle 教程

Gradle 笔记

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/gradle-testing.html

Gradle测试


测试任务自动检测和执行测试源集合中的所有单元测试。它还会在测试执行完成后生成报告。JUnit 和 TestNG 都是支持的 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