初始设置

与 Gradle 的集成通过以下组件实现:

  • Gradle 的 Jtest 插件 - 在 <INSTALL_DIR>\integration\maven 的本地 Maven 资源库中随 Jtest 一起提供
  • jtest.gradleinit.gradle 脚本在 Jtest <INSTALL_DIR>\integration\gradle 中提供

配置 Jtest 的位置

jtest.gradleinit.gradle 脚本根据其位置自动检测 Jtest 安装目录。它们会将检测到的目录设置为 jtest.home 属性,Gradle 的 Jtest 插件之后会使用该属性来配置 home 参数。 

如果您不使用这些脚本或者脚本的位置与 Jtest 安装目录不同(例如,您移动了脚本是想要从其他位置执行 Jtest),则需要通过以下方式之一配置 Jtest 的位置:

  • jtest.home 属性。在以下文件之一提供 Jtest 安装目录的路径:
    - $HOME/.gradle/gradle.properties
    - PROJECT_DIR/gradle.properties
  • JTEST_HOME 环境变量Gradle 2.0 及更早版本中的初始化脚本无法解析 initscript 代码块中的 Java 系统属性。初始化脚本 <INSTALL_DIR>/integration/gradle/init.gradle 只有在将 Jtest 位置设置为 JTEST_HOME 环境变量时才能识别该位置。

详细信息,请参阅 Gradle 属性的类型

配置依赖项

使用 jtest.gradleinit.gradle 脚本配置 Jtest 执行时,会自动添加大部分分析和测试 Maven 构建所需的依赖项(请参阅配置 Jtest 执行)。

此外,要执行 JUnit 测试并收集覆盖率数据,您需要在 Gradle 构建脚本中手动配置 JUnit 平台启动器,例如:

testRuntimeOnly 'org.junit.platform:junit-platform-launcher:<version>'

确保您配置的启动器版本与您使用的 JUnit 版本对应,例如:org.junit.platform:junit-platform-launcher:1.5.2

配置 Jtest 执行

在开始使用 Gradle 的 Jtest 插件之前,需在以下 .properties 文件之一配置 Jtest 许可证及其他设置:

  • <INSTALL_DIR>/jtestcli.properties
  • $HOME/jtestcli.properties
  • $HOME/.gradle/gradle.properties
  • [PROJECT_DIR]/gradle.properties

详细信息,请参阅设置许可证配置

在命令行中配置分析

Jtest 提供的 init.gradle 脚本用于与 Gradle 集成,无需修改您的 Gradle 构建脚本。

使用 jtest 任务运行 Gradle,并使用 -I 选项提供脚本位置以应用插件:

gradle jtest -I <INSTALL_DIR>/integration/gradle/init.gradle

如果未配置 jtest.home 属性,脚本将根据其位置自动检测 Jtest 安装目录,并相应设置该属性。

在构建脚本中配置分析

您可以通过将 jtest.gradle 脚本应用到构建脚本(最小化配置)或在构建脚本中配置 Jtest 任务(扩展配置)来修改您的构建脚本,从而与 Gradle 集成。使用 Jtest 执行分析依赖于构建脚本的配置方式。

(info) 如果您的构建脚本指定了 JVM 参数,则应确保它们不会覆盖其他 JVM 参数。

最小化配置

Gradle 的 Jtest 插件可以应用于 Gradle 构建脚本(build. gradle),方法是将路径添加到 jtest.gradle 脚本 - 直接在根项目构建脚本中:

//build script blocks
apply from: System.properties['jtest.home'] + '/integration/gradle/jtest.gradle'
//other build script blocks

如果未配置 jtest.home 属性,脚本将根据其位置自动检测 Jtest 安装目录,并相应设置该属性。

执行分析

如果对项目进行最小化配置,则使用以下命令执行分析:

gradle jtest -Djtest.home=[INSTALL_DIR]

扩展配置

  1. [PROJECT_DIR]/gradle.properties$HOME/.gradle/gradle.properties 文件中配置 jtest.home 属性。例如:

    # Java system property 'jtest.home
    systemProp.jtest.home=PATH/TO/JTEST
    # project property 'jtest.settings' (could be Java system property as well)
    jtest.settings=PATH/TO/SETTINGS/FILE

    这样,您就不需要在命令行中指定 Jtest 安装目录的路径。

  2. PROJECT_DIR/build.gradle 构建脚本中配置 Jtest 任务。例如:

    //build script blocks
    apply from: System.properties['jtest.home'] + '/integration/gradle/jtest.gradle'
    
    jtest {
      config = "builtin://Recommended Rules"
      showSettings = true
      resources = [
        "**/*.java",
        "my_project_name/src/**/*.xml"
      ]
      compilation {
        id = "main" //default value
        override = false //default value
        encoding = "MacRoman"
      }
    }
    // other build script blocks

执行分析

如果对项目进行扩展配置,则使用以下命令执行分析:

gradle jtest

Gradle 属性的类型

Gradle 支持两种属性:

Java 系统属性

可以通过以下方式配置该系统属性:

  • 在命令行中,使用 -D 参数(-DmyProperty
  • gradle.properties 文件中,使用 systemPropsystemProp.MY_PROPERTY=MY_VALUE

在 Gradle 构建脚本中可以通过 System.properties['myProperty'] 访问这些系统属性。

Gradle 项目属性

可以通过以下方式配置该 Gradle 属性:

  • 在命令行中,使用 -P 或 -Dorg.gradle.project 参数(-PmyProperty-Dorg.gradle.project.myProperty
  • gradle.properties 文件中

这些 Gradle 属性可以通过其名称直接在 Gradle 构建脚本中访问,或通过 property('myProperty') 函数访问。

(info) 如果您的属性键包含“.”字符,则应通过 property('myProperty') 访问,而不是直接在构建脚本中访问。

详细信息,请参阅 Gradle 用户手册(System PropertiesGradle Properties 部分)。

手动自定义编译数据

如需修改所有项目的编译数据,可以使用 -Djtest.dataUpdate 命令行选项。

有关 Jtest 插件自动检测编译数据自定义设置的更多信息,请参阅编译数据模型

  • No labels