| API文档: | Test |
|---|
执行 JUnit(3.8.x、4.x 或 5.x)或 TestNG 测试。测试始终在(一个或多个)单独的 JVM 中运行。
下面的示例显示了各种配置选项。
plugins {
id 'java' // adds 'test' task
}
test {
// discover and execute JUnit4-based tests
useJUnit()
// discover and execute TestNG-based tests
useTestNG()
// discover and execute JUnit Platform-based tests
useJUnitPlatform()
// 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 = "128m"
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)
}
// fail the 'test' task on the first test failure
failFast = true
// skip an actual test execution
dryRun = true
// 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 )
}
}
Test.getDebug()通过在调用构建时提供 `--debug-jvm` 开关,可以以临时方式
在调试模式下启动测试过程(请参阅 参考资料) 。
gradle someTestTask --debug-jvm
| 财产 | 描述 |
allJvmArgs | 用于为进程启动 JVM 的完整参数集。这包括定义系统属性、最小/最大堆大小和引导类路径的参数。 |
binaryResultsDirectory | 内部二进制格式的测试结果的根目录属性。 |
bootstrapClasspath | 用于进程的引导类路径。当该类路径为空时,将使用 JVM 的默认引导类路径。 |
classpath | 用于执行测试的类路径。 |
debug | 确定是否为测试进程启用调试。启用后 — |
debugOptions | 进程的 Java 调试线路协议属性。如果启用,则将 |
dryRun | 孵化 指示此任务是否将跳过单个测试执行。 |
enableAssertions | 如果为进程启用了断言,则返回 true。 |
environment | 用于进程的环境变量。默认为该进程的环境。 |
excludes | 测试执行的排除模式。 |
executable | 要使用的可执行文件的名称。 |
failFast | 指示此任务是否会在第一次失败的测试中失败 |
forkEvery | 在分叉测试进程中执行的测试类的最大数量。当达到此限制时,分叉测试进程将重新启动。 |
ignoreFailures | 指定当此任务执行的验证失败时构建是否应中断。 |
includes | 其中包括测试执行的模式。 |
javaLauncher | 配置用于运行测试的 java 可执行文件。 |
jvmArgs | 用于为进程启动 JVM 的额外参数。不包括系统属性和最小/最大堆大小。 |
jvmArgumentProviders | 用于 fork 的 java 进程的命令行参数提供程序。 |
maxHeapSize | 进程的最大堆大小(如果有)。 |
maxParallelForks | 并行启动的最大测试进程数。 |
minHeapSize | 进程的最小堆大小(如果有)。 |
modularity | 该测试任务的模块路径处理。 |
options | 返回测试框架特定选项。请确保在使用此方法之前调用 |
reports | 该任务可能产生的报告。 |
scanForTestClasses | 指定是否应检测测试类。当 |
systemProperties | 将用于该进程的系统属性。 |
testClassesDirs | 已编译测试源的目录。 |
testLogging | 允许设置与将哪些测试事件记录到控制台以及详细级别相关的选项。例如,要显示有关异常的更多信息,请使用: |
workingDir | 进程的工作目录。默认为项目目录。 |
| 财产 | 描述 |
jacoco |
|
| 方法 | 描述 |
addTestListener(listener) | 向此任务注册一个测试侦听器。还可以考虑以下方便的方法来更快地连接到测试执行: |
addTestOutputListener(listener) | 向此任务注册一个输出侦听器。挂钩输出事件的更快方法是使用该 |
afterSuite(closure) | 添加一个在测试套件执行后通知的关闭。 A |
afterTest(closure) | 添加一个在测试执行后通知的关闭。 A |
beforeSuite(closure) | 添加在执行测试套件之前要通知的闭包。实例 |
beforeTest(closure) | 添加在执行测试之前要通知的闭包。实例 |
bootstrapClasspath(classpath) | 将给定值添加到进程的引导类路径的末尾。 |
copyTo(target) | 将这些选项复制到给定选项。 |
copyTo(target) | 将这些选项复制到给定的目标选项。 |
debugOptions(action) | 配置进程的 Java 调试线路协议属性。如果 |
environment(name, value) | 向此进程的环境添加环境变量。 |
environment(environmentVariables) | 为此过程的环境添加一些环境变量。 |
exclude(excludeSpec) | 添加排除规范。可以多次调用此方法来附加新规范。给定的闭包将
|
exclude(excludes) | 为测试类目录中的文件添加排除模式(例如“**/*Test.class”))。 |
exclude(excludes) | 为测试类目录中的文件添加排除模式(例如“**/*Test.class”))。 |
exclude(excludeSpec) | 添加排除规范。可以多次调用此方法来附加新规范。如果未提供排除,则不会排除任何文件。如果提供了排除,则文件不得与要处理的任何排除模式匹配。 |
executable(executable) | 设置要使用的可执行文件的名称。 |
include(includeSpec) | 添加包含规范。可以多次调用此方法来附加新规范。给定的闭包将 a |
include(includes) | 添加测试类目录中文件的包含模式(例如“**/*Test.class”))。 |
include(includes) | 添加测试类目录中文件的包含模式(例如“**/*Test.class”))。 |
include(includeSpec) | 添加包含规范。可以多次调用此方法来附加新规范。如果未提供包含,则将包含此容器中的所有文件。如果提供了包含,则文件必须至少匹配要包含的包含模式或规范之一。 |
jvmArgs(arguments) | 添加一些用于启动进程的 JVM 的参数。 |
jvmArgs(arguments) | 添加一些用于启动进程的 JVM 的参数。 |
onOutput(closure) | 添加一个在收到测试输出时收到通知的闭包。 A |
options(testFrameworkConfigure) | 配置测试框架特定选项。 |
removeTestListener(listener) | 通过此任务取消注册测试侦听器。此方法只会删除通过调用 |
removeTestOutputListener(listener) | 取消注册此任务的测试输出侦听器。此方法只会删除通过调用 |
reports(configureAction) | 配置此任务可能生成的报告。 |
setTestNameIncludePatterns(testNamePattern) | 设置要包含在执行中的测试名称模式。支持类或方法名称,支持通配符“*”。有关更多信息,请参阅用户指南中有关测试的章节。有关支持模式的更多信息,请参阅 |
systemProperties(properties) | 添加一些用于进程的系统属性。 |
useJUnit() | 指定应使用 JUnit4 来发现和执行测试。 |
useJUnit(testFrameworkConfigure) | 指定应使用 JUnit4 来发现并执行具有附加配置的测试。 |
useJUnit(testFrameworkConfigure) | 指定应使用 JUnit4 来发现并执行具有附加配置的测试。 |
useJUnitPlatform() | 指定应使用 JUnit Platform 来发现和执行测试。 |
useJUnitPlatform(testFrameworkConfigure) | 指定应使用 JUnit Platform 来发现并执行具有附加配置的测试。 |
useTestNG() | 指定应使用 TestNG 来发现和执行测试。 |
useTestNG(testFrameworkConfigure) | 指定应使用 TestNG 来发现并执行具有附加配置的测试。 |
useTestNG(testFrameworkConfigure) | 指定应使用 TestNG 来发现并执行具有附加配置的测试。 |
workingDir(dir) | 设置进程的工作目录。提供的参数根据 进行评估 |
DirectoryProperty binaryResultsDirectory
内部二进制格式的测试结果的根目录属性。
- 默认:
project.testResultsDir/binary/task.name
确定是否为测试进程启用调试。启用后 — debug = true— 该进程以挂起状态启动,侦听端口 5005。调试时应禁用并行测试执行,如果您使用非零值,则偶尔需要重新连接调试器
Test.getForkEvery()。
从 Gradle 5.6 开始,您可以通过配置端口和其他 Java 调试属性
JavaForkOptions.debugOptions(org.gradle.api.Action)。
- 默认使用
java插件: false
JavaDebugOptions debugOptions(只读)
进程的 Java 调试线路协议属性。如果启用,则将-agentlib:jdwp=...
使用参数中的配置附加到 JVM 参数。
注意:此属性正在酝酿中,可能会在 Gradle 的未来版本中发生更改。
指示此任务是否将跳过单个测试执行。
对于 JUnit 4 和 5,这将报告已跳过的测试。对于 TestNG,这将报告已通过的测试。
仅支持支持本机空运行的 TestNG 版本,即 TestNG 6.14 或更高版本。
在分叉测试进程中执行的测试类的最大数量。当达到此限制时,分叉测试进程将重新启动。
默认情况下,Gradle 在执行测试时自动使用单独的 JVM。
- 值
0(无限制)表示对所有测试类重用测试过程。这是默认设置。 - 值表示为每个测试类
1启动一个新的测试过程。这是非常昂贵的。 - 值表示在测试类
N之后开始新的测试过程。N
由于停止和启动每个测试过程的成本,此属性可能会对性能产生很大影响。更改此属性的默认值是不常见的。
- 默认使用
java插件: 0
并行启动的最大测试进程数。
默认情况下,Gradle 一次执行一个测试类。
- 值表示
1一次仅在单个测试进程中执行单个测试类。这是默认设置。 - 值表示将启动
N最多测试进程来执行测试类。这可以通过并行运行多个测试类来缩短测试执行时间。N
此属性不能超过当前构建的 max-workers 值。 Gradle 还将限制所有Test任务中启动的测试进程的数量。
- 默认使用
java插件: 1
ModularitySpec modularity(只读)
该测试任务的模块路径处理。
TestFrameworkOptions options(只读)
返回测试框架特定选项。请确保在使用此方法之前调用Test.useJUnit(),Test.useJUnitPlatform()或。Test.useTestNG()
TestTaskReports reports(只读)
该任务可能产生的报告。
指定是否应检测测试类。当true扫描与包含和排除模式匹配的类以查找测试类时,任何找到的类都会被执行。当
false执行与包含和排除模式匹配的类时。
- 默认使用
java插件: true
TestLoggingContainer testLogging(只读)
允许设置与将哪些测试事件记录到控制台以及详细级别相关的选项。例如,要显示有关异常的更多信息,请使用:
apply plugin: 'java' test.testLogging { exceptionFormat "full" }
欲了解更多信息,请参阅TestLoggingContainer。
JacocoTaskExtension jacoco(只读)
JacocoTaskExtension由 jacoco 插件添加。
void addTestListener(TestListener听众)
向此任务注册一个测试侦听器。还可以考虑以下方便的方法来更快地连接到测试执行:AbstractTestTask.beforeTest(groovy.lang.Closure), AbstractTestTask.afterTest(groovy.lang.Closure), AbstractTestTask.beforeSuite(groovy.lang.Closure),AbstractTestTask.afterSuite(groovy.lang.Closure)
该侦听器不会收到其他任务执行的测试的通知。要获得该行为,请使用Gradle.addListener(java.lang.Object).
void addTestOutputListener(TestOutputListener听众)
向此任务注册一个输出侦听器。挂钩输出事件的更快方法是使用该AbstractTestTask.onOutput(groovy.lang.Closure)方法。
void afterSuite(Closure关闭)
添加一个在测试套件执行后通知的关闭。 ATestDescriptor和TestResult实例作为参数传递给闭包。
在执行所有测试套件后也会调用此方法。提供的描述符将有一个空的父套件。
void afterTest(Closure关闭)
添加一个在测试执行后通知的关闭。 ATestDescriptor和TestResult实例作为参数传递给闭包。
void beforeSuite(Closure关闭)
添加在执行测试套件之前要通知的闭包。实例TestDescriptor作为参数传递给闭包。
在执行任何测试套件之前也会调用此方法。提供的描述符将有一个空的父套件。
void beforeTest(Closure关闭)
添加在执行测试之前要通知的闭包。实例TestDescriptor作为参数传递给闭包。
Test copyTo(JavaForkOptions目标)
将这些选项复制到给定选项。
Test copyTo(ProcessForkOptions目标)
将这些选项复制到给定的目标选项。
void debugOptions(行动)Action<JavaDebugOptions>
Action<JavaDebugOptions>配置进程的 Java 调试线路协议属性。如果JavaForkOptions.setDebug(boolean)启用,则将-agentlib:jdwp=...使用参数中的配置附加到 JVM 参数。
添加排除规范。可以多次调用此方法来附加新规范。给定的闭包将
FileTreeElement作为其参数传递。闭包应该返回 true 或 false。例子:
copySpec {
from 'source'
into 'destination'
//an example of excluding files from certain configuration:
exclude { it.file in configurations.someConf.files }
}
如果未提供排除,则不会排除任何文件。如果提供了排除,则文件不得与要处理的任何排除模式匹配。
Test exclude(不包括规格)Spec<FileTreeElement>
Spec<FileTreeElement>添加排除规范。可以多次调用此方法来附加新规范。如果未提供排除,则不会排除任何文件。如果提供了排除,则文件不得与要处理的任何排除模式匹配。
添加包含规范。可以多次调用此方法来附加新规范。给定的闭包将 aFileTreeElement作为其参数传递
。如果未提供包含,则将包含此容器中的所有文件。如果提供了包含,则文件必须至少匹配要包含的包含模式或规范之一。
Test include(包括规格)Spec<FileTreeElement>
Spec<FileTreeElement>添加包含规范。可以多次调用此方法来附加新规范。如果未提供包含,则将包含此容器中的所有文件。如果提供了包含,则文件必须至少匹配要包含的包含模式或规范之一。
void onOutput(Closure关闭)
添加一个在收到测试输出时收到通知的闭包。 ATestDescriptor和TestOutputEvent实例作为参数传递给闭包。
apply plugin: 'java' test { onOutput { descriptor, event -> if (event.destination == TestOutputEvent.Destination.StdErr) { logger.error("Test: " + descriptor + ", error: " + event.message) } } }
TestFrameworkOptions options(测试框架配置)Action<? super TestFrameworkOptions>
Action<? super TestFrameworkOptions>配置测试框架特定选项。
当Test在测试套件之外创建任务时,您应该在使用此方法之前调用Test.useJUnit(),Test.useJUnitPlatform()或。Test.useTestNG()如果未设置测试框架,任务将采用 JUnit4。
void removeTestListener(TestListener听众)
通过此任务取消注册测试侦听器。此方法只会删除通过调用AbstractTestTask.addTestListener(org.gradle.api.tasks.testing.TestListener)此任务添加的侦听器。如果侦听器已向 Gradle 注册,则使用Gradle.addListener(java.lang.Object)此方法将不会执行任何操作。相反,使用Gradle.removeListener(java.lang.Object).
void removeTestOutputListener(TestOutputListener听众)
取消注册此任务的测试输出侦听器。此方法只会删除通过调用AbstractTestTask.addTestOutputListener(org.gradle.api.tasks.testing.TestOutputListener)此任务添加的侦听器。如果侦听器已向 Gradle 注册,则使用Gradle.addListener(java.lang.Object)此方法将不会执行任何操作。相反,使用Gradle.removeListener(java.lang.Object).
TestTaskReports reports(配置动作)Action<? super TestTaskReports>
Action<? super TestTaskReports>配置此任务可能生成的报告。
AbstractTestTask setTestNameIncludePatterns(测试名称模式)List<String>
List<String>设置要包含在执行中的测试名称模式。支持类或方法名称,支持通配符“*”。有关更多信息,请参阅用户指南中有关测试的章节。有关支持模式的更多信息,请参阅TestFilter
void useJUnit(测试框架配置)Action<? super JUnitOptions>
Action<? super JUnitOptions>指定应使用 JUnit4 来发现并执行具有附加配置的测试。
提供的操作配置 的实例JUnitOptions。
指定应使用 JUnit Platform 来发现和执行测试。
如果您的测试使用 JUnit Jupiter/JUnit5,请使用此选项。
JUnit Platform 支持多个测试引擎,允许在其之上构建其他测试框架。即使您不直接使用 JUnit,您也可能需要使用此选项。
void useJUnitPlatform(测试框架配置)Action<? super JUnitPlatformOptions>
Action<? super JUnitPlatformOptions>指定应使用 JUnit Platform 来发现并执行具有附加配置的测试。
如果您的测试使用 JUnit Jupiter/JUnit5,请使用此选项。
JUnit Platform 支持多个测试引擎,允许在其之上构建其他测试框架。即使您不直接使用 JUnit,您也可能需要使用此选项。
提供的操作配置 的实例JUnitPlatformOptions。
void useTestNG(测试框架配置)Action<? super TestNGOptions>
Action<? super TestNGOptions>指定应使用 TestNG 来发现并执行具有附加配置的测试。
提供的操作配置 的实例TestNGOptions。
设置进程的工作目录。提供的参数根据 进行评估Project.file(java.lang.Object)。
配置测试框架特定选项。
当Test在测试套件之外创建任务时,您应该在使用此方法之前调用Test.useJUnit(),Test.useJUnitPlatform()或。Test.useTestNG()如果未设置测试框架,任务将采用 JUnit4。