本节提供有关 Gradle 的 Jtest 任务及其参数的信息。提供以下任务:
jtest
执行 Jtest 的 Gradle 任务。
属性
名称 | 接受的值 / 数据类型 | 说明 | 是否必需 |
---|---|---|---|
compilation | 编译 | 手动配置数据的说明(请参阅手动自定义编译数据) | 否 |
compilations | 列表 | 手动配置数据的说明列表(请参阅手动自定义编译数据) | 否 |
dataUpdate | 字符串 | 允许手动更新从构建中收集的编译数据。 用户属性为: | 否 |
config | 字符串 | 内建、DTP 或用户自定义测试配置的名称。 用户属性为: | 否 |
exclude | 字符串 | 指定所选资源中的文件或包的子集并从分析中排除。您可以提供限定名称或使用 Ant glob 匹配更多文件名。 用户属性为: | 否 |
excludes | 列表 | exclude 参数列表。 用户属性为: | 否 |
fail | true | false | 报告任何违规时,构建失败。 用户属性为: | 否 |
home | 路径 | 指定 Jtest 安装目录。如果未定义,将使用 PATH 中指定的 Jtest 位置。 用户属性为: | 建议指定 |
ignoredIds | 列表 | 忽略的 compilation ID 列表。 用户属性为: | 否 |
include | 字符串 | 指定所选资源中的文件或包的子集并包含在分析中。 用户属性为: | 否 |
includes | 列表 | include 参数列表。 用户属性为: | 否 |
publish | true | false | 启用将本地分析的结果发送到 DTP 服务器。 用户属性为: | 否 |
report | 路径 | 指定创建报告的目录。 用户属性为: | 否 |
resource | 字符串 | 指定分析的输入范围。如果没有指定资源,Jtest 将分析每个构建项目中的资源。 用户属性为: | 否 |
resources | 列表 | resource 参数列表。 用户属性为: | 否 |
settings | 路径 | 包含自定义配置设置的 *properties 文件的绝对或相对路径。 用户属性为:jtest.settings | 否 |
settingsList | 列表 | settings 参数列表。 用户属性为: | 否 |
showDetails | true | false | 显示详细的进度信息。 用户属性为:jtest.showdetails | 否 |
showSettings | true | false | 打印当前设置和自定义设置,以及每个设置和自定义设置的位置信息(例如,在 jtest.properties 文件中)。 用户属性为: | 否 |
projectNameTemplate | 字符串 | 项目名称模板。此参数允许使用选项 [group]、[name]、[version]、[path] 和 [basedir] 配置模式。 用户属性为: | 否 |
skip | true | false | 允许跳过 Jtest 执行阶段。如果设置为 用户属性为: | 否 |
参数的详细信息
config
测试配置的名称。支持以下配置类型:
- 内建测试配置,例如
"builtin://Recommended Rules"
- dtp 测试配置,例如
"dtp://New Config"
- 用户自定义测试配置,例如
"user://Your Config"
用户自定义测试配置应作为 *.properties 文件存储在 [INSTALL_DIR]/configs/user 目录中。
dataUpdate
允许手动更新从构建中收集的编译数据。
- 支持的操作:prepend、append 和 set。
- 支持的数据类型:classpath、bootpath、sourcepath、resourcepath、binarypath、sourcecode(仅限 set)和 encoding(仅限 set)
- 范围:将更新收集的所有项目数据
exclude
指定所选资源中的文件或包的子集并从分析中排除。可以提供限定名称。您可以使用 glob 模式来匹配更多的文件名。
示例 1:以下模式会排除 com.parasoft 包及其子包中的所有文件:/com/parasoft/**
示例 2:以下模式会排除 com.parasoft.jtest 包中的所有文件,但不排除其子包中的所有文件:/com/parasoft/jtest/*
示例 3:以下模式会排除指定目录及所有子目录中的所有文件:path:/home/user/project/src/test/java/**
include
指定所选资源中的文件或包的子集并包含在分析中。您可以使用 glob 模式来匹配更多的文件名。
示例 1:以下模式会包括 com.parasoft 包及其子包中的所有文件:/com/parasoft/**
示例 2:以下模式会包括 com.parasoft.jtest 包中的所有文件,但不排除其子包中的所有文件:/com/parasoft/jtest/*
示例 3:以下模式会包括指定目录和所有子目录中的所有文件:path:/home/user/project/src/test/java/**
resource
指定分析的输入范围。如果没有指定资源,Jtest 将分析每个构建项目中的资源。
使用以下模式指定路径: ${ProjectName}/my/src/dir/my/package/file.java"。您可以使用以下通配符:
- ? - 匹配一个字符
- * - 匹配零个或多个字符,不包括路径分隔符(/ 字符)
- ** - 匹配整个路径,包括路径分隔符(/ 字符)
settings
包含自定义配置设置的 *properties 文件的绝对或相对路径。
projectNameTemplate
项目名称模板。默认情况下,以下模式用于在 json 中创建项目名称:"group:name"。该参数允许使用 [group]、[name]、[version]、[path] 和 [basedir] 选项配置模式,例如,使项目名称与 Eclipse 中的项目名称兼容。
参数类型的详细信息
以下示例假定 Gradle 的 Jtest 插件已经在 Gradle 构建脚本中正确配置和应用;请参阅配置 Gradle 的 Jtest 插件。
编译类型
- 属性:Compilation
- 嵌套对象
jtest { home = "path/to/jtest" compilation { id = "main" override = true } }
列表类型
- 属性:resources
- 指定与构建期间收集的资源匹配的资源模式列表。
jtest { home = "path/to/jtest" resources = [ "**.java", "myGradleProjectName/src/com/mycompany/models/**/*.properties" ] }
字符串类型
- 属性:Exclude
- 指定所选资源中的文件或包的子集并从分析中排除。
jtest { home = "path/to/jtest" exclude = "com/mycompany/models/**/NotInteresting*.properties" }
更多信息,请参阅编译数据模型。
jtest-agent
使用 Jtest 收集覆盖率的 Gradle 任务。
参数
名称 | 接受的值 / 数据类型 | 说明 | 是否必需 |
---|---|---|---|
home | 路径 | Jtest 安装目录。 用户属性为: | 是 |
enableJacoco | true | false | 用于启用或禁用通过 Jacoco 引擎收集行覆盖率的功能。 默认值为: 用户属性为: | 否 |
skip | true | false | 允许跳过 Jtest 任务。 默认值为: 用户属性为: | 否 |
runtimeDataLocation | 路径 | 覆盖率运行时数据存储文件的路径。 用户属性为: | 否 |
metadataLocation | 路径 | 覆盖率元数据存储文件的路径。 用户属性为: | 否 |
coverage | 用于配置覆盖率收集的参数集。
| 否 |
参数的详细信息
coverage
默认值为:
jtest { /* other parameters */ coverage { skip = false includes = [ 'package/**' ] excludes = [ ] testIncludes = [ 'package/Test.class' ] testExcludes = [ ] } }
runtimeDataLocation
默认值为: ${basedir}/parasoft/jtest-instrument/runtimedata.data
metadataLocation
默认值为:${basedir}/parasoft/jtest-instrument/metadata.data
jtest-monitor
此任务扫描构建以生成 Jtest Java 代理的设置,并在使用 monitorLocation 参数指定的位置中创建一个 monitor 包。
monitor 包中包含以下文件:
- static_coverage.xml - 包含静态覆盖率信息的文件
- agent.jar - Jtest Java 覆盖率代理 jar 包
- agent.properties - 包含构建过程中生成的范围参数和其他属性的代理设置文件
- agent.sh/agent.bat - 生成应用程序监控所需的 Jtest Java 代理 VM 参数的脚本
- opentelemetry-javaagent.jar 和 jtest-otel-ext.jar - 在多用户覆盖率模式中使用的文件:原始 OpenTelemetry Java 代理及其 Jtest 扩展。此扩展用于收集将收集到的覆盖率数据分配给特定用户所需的信息。这些文件从
<INSTALL_DIR>/integration/coverage
目录拷贝。
参数
名称 | 接受的值 / 数据类型 | 说明 | 是否必需 |
---|---|---|---|
agentServerEnabled | true | false | 用于启用代理服务器的选项。 用户属性为:jtest.agentServerEnabled | 否 |
autostartAgent | true | false | 用于自动启用覆盖率收集的选项。 用户属性为: | 否 |
compilation | 编译 | 手动配置数据的说明(请参阅手动自定义编译数据) | 否 |
coverage | 用于配置覆盖率收集的参数集。
| ||
enableJacoco | true | false | 用于启用或禁用通过 Jacoco 引擎收集行覆盖率的功能。 默认值为: 用户属性为: | 否 |
exclude | 字符串 | 指定所选资源中的文件或包的子集并从分析中排除。您可以提供限定名称或使用 Ant glob 匹配更多文件名。 用户属性为: | 否 |
excludes | 列表 | exclude 参数列表。 用户属性为: | 否 |
home | 路径 | Jtest 安装目录。 用户属性为: | 建议指定 |
ignoredIds | 列表 | 忽略的 compilation ID 列表。 用户属性为: | 否 |
include | 字符串 | 指定所选资源中的文件或包的子集并包含在分析中。 用户属性为: | 否 |
includes | 列表 | include 参数列表。 用户属性为: | 否 |
monitorLocation | 路径 | monitor 包创建位置的路径。 用户属性为:jtest.monitorLocation | 否 |
publish | true | false | 启用将本地分析的结果发送到 DTP 服务器。 用户属性为: | 否 |
report | 路径 | 指定创建报告的目录。 用户属性为: | 否 |
resource | 字符串 | 指定分析的输入范围。如果没有指定资源,Jtest 将分析每个构建项目中的资源。 用户属性为: | 否 |
resources | 列表 | resource 参数列表。 用户属性为: | 否 |
settings | 路径 | 包含自定义配置设置的 *properties 文件的绝对或相对路径。 用户属性为:jtest.settings | 否 |
settingsList | 列表 | settings 参数列表。 用户属性为: | 否 |
showDetails | true | false | 显示详细的进度信息。 用户属性为:jtest.showdetails | 否 |
showSettings | true | false | 打印当前设置和自定义设置,以及每个设置和自定义设置的位置信息(例如,在 jtest.properties 文件中)。 用户属性为: | 否 |
projectNameTemplate | 字符串 | 项目名称模板。此参数允许使用选项 [group]、[name]、[version]、[path] 和 [basedir] 配置模式。 用户属性为: | 否 |
skip | true | false | 允许跳过 Jtest 执行阶段。如果设置为 用户属性为: | 否 |
参数的详细信息
exclude
指定所选资源中的文件或包的子集并从分析中排除。可以提供限定名称。您可以使用 glob 模式来匹配更多的文件名。
示例 1:以下模式会排除 com.parasoft 包及其子包中的所有文件:/com/parasoft/**
示例 2:以下模式会排除 com.parasoft.jtest 包中的所有文件,但不排除其子包中的所有文件:/com/parasoft/jtest/*
示例 3:以下模式会排除指定目录及所有子目录中的所有文件:path:/home/user/project/src/test/java/**
include
指定所选资源中的文件或包的子集并包含在分析中。您可以使用 glob 模式来匹配更多的文件名。
示例 1:以下模式会包括 com.parasoft 包及其子包中的所有文件:/com/parasoft/**
示例 2:以下模式会包括 com.parasoft.jtest 包中的所有文件,但不排除其子包中的所有文件:/com/parasoft/jtest/*
示例 3:以下模式会包括指定目录和所有子目录中的所有文件:path:/home/user/project/src/test/java/**
resource
指定分析的输入范围。如果没有指定资源,Jtest 将分析每个构建项目中的资源。
使用以下模式指定路径: ${ProjectName}/my/src/dir/my/package/file.java"。您可以使用以下通配符:
- ? - 匹配一个字符
- * - 匹配零个或多个字符,不包括路径分隔符(/ 字符)
- ** - 匹配整个路径,包括路径分隔符(/ 字符)
settings
包含自定义配置设置的 *properties 文件的绝对或相对路径。
projectNameTemplate
项目名称模板。默认情况下,以下模式用于在 json 中创建项目名称:"group:name"。该参数允许使用 [group]、[name]、[version]、[path] 和 [basedir] 选项配置模式,例如,使项目名称与 Eclipse 中的项目名称兼容。
参数类型的详细信息
以下示例假定 Gradle 的 Jtest 插件已经在 Gradle 构建脚本中正确配置和应用;请参阅配置 Gradle 的 Jtest 插件。
编译类型
- 属性:Compilation
- 嵌套对象
jtest { home = "path/to/jtest" compilation { id = "main" override = true } }
列表类型
- 属性:resources
- 指定与构建期间收集的资源匹配的资源模式列表。
jtest { home = "path/to/jtest" resources = [ "**.java", "myGradleProjectName/src/com/mycompany/models/**/*.properties" ] }
字符串类型
- 属性:Exclude
- 指定所选资源中的文件或包的子集并从分析中排除。
jtest { home = "path/to/jtest" exclude = "com/mycompany/models/**/NotInteresting*.properties" }
更多信息,请参阅编译数据模型。
affectedTests
该目标由 Jtest 自带的测试影响分析插件提供,用于对项目执行基于变更的测试(请参阅测试影响分析)。
必需的参数
名称 | 用户属性 | 接受的值 / 数据类型 | 说明 |
---|---|---|---|
referenceCoverageFile | jtest.referenceCoverageFile | 路径 | URL | Jtest 在分析过程中生成的 coverage.xml 文件的路径。该文件包含运行期间收集的覆盖率数据。 如果指定了 URL,该文件将被下载到 Jtest 执行目录,并在使用 clean 命令执行 Gradle 时删除。若要更改默认的下载位置,则需配置 默认值为: |
referenceReportFile | jtest.referenceReportFile | 路径 | URL | Jtest 在分析过程中生成的 report.xml 文件的路径。该文件包含有关在运行期间执行的单元测试的信息。 如果指定了 URL,该文件将被下载到 Jtest 执行目录,并在使用 clean 命令执行 Gradle 时删除。若要更改默认的下载位置,则需配置 默认值为: |
jtestHome | jtest.home | 路径 | Jtest 安装目录的路径。Jtest 安装目录已经使用 Maven 设置或 JTEST_HOME 环境变量进行配置的情况下则不需要指定。 |
可选参数
名称 | 用户属性 | 接受的值 / 数据类型 | 说明 |
---|---|---|---|
referenceStore | jtest.referenceStore | 路径 | 缓存目录的路径,用于存储通过 这些缓存文件将用作测试影响分析的基准,直到从指定目录中删除为止。删除后会通过 URL 重新下载。 |
runFailedTests | jtest.runFailedTests | true | false | 用于在测试运行中包括上一次运行中的所有失败测试,即使它们没有受到变更的影响。 默认为: |
runModifiedTests | jtest.runModifiedTests | true | false | 用于在测试运行中包括新增的测试和修改的测试(即使它们没有受到生产代码变更的影响)。 默认为: |
settings | jtest.settings | 路径 | 包含自定义配置设置的 *properties 文件的路径。 |
settingsList | jtest.settingsList |
Jtest 安装目录下 jtest.properties 文件中配置的设置会自动包括在内。 |