跳至主要內容

ihub-verification

Henry...大约 2 分钟

ihub-verification

插件说明

ihub-verification插件用于配置代码静态检查以及测试用例覆盖率等。

信息描述
插件IDpub.ihub.plugin.ihub-verification
插件名称验证插件
插件类型Project[1]
扩展名称iHubVerification
插件依赖ihub-bomcodenarcopen in new windowpmdopen in new windowjacocoopen in new windowjacoco-report-aggregationopen in new window主项目

插件功能

  • 项目包含groovy插件时会自动配置codenarc
    插件,默认配置详见open in new window,可以通过配置$rootDir/conf/codenarc/codenarc.groovy覆盖默认配置,示例open in new window
  • 项目包含java插件时会自动配置pmd插件,组件使用com.alibaba.p3c:p3c-pmd,可通过$rootDir/conf/pmd/ruleset.xml配置检查规则,默认规则如下:
ruleSets = [
    'rulesets/java/ali-comment.xml',
    'rulesets/java/ali-concurrent.xml',
    'rulesets/java/ali-constant.xml',
    'rulesets/java/ali-exception.xml',
    'rulesets/java/ali-flowcontrol.xml',
    'rulesets/java/ali-naming.xml',
    'rulesets/java/ali-oop.xml',
    'rulesets/java/ali-orm.xml',
    'rulesets/java/ali-other.xml',
    'rulesets/java/ali-set.xml',
    'rulesets/vm/ali-other.xml',
]
  • jacoco插件用于检查代码测试覆盖率,主要检查维度为:bundle分支覆盖率bundle指令覆盖率package指令覆盖率
    ,如果是主项目会添加jacoco-report-aggregation插件,用于多项目时聚合测试报告,打印报告详见

扩展属性

pmd开头为PMD静态检查codenarc开头为Codenarc静态检查jacoco开头为Jacoco覆盖率检查

ExtensionDescriptionDefaultExt[2]Prj[3]Sys[4]Env[5]
pmdConsoleOutput控制台是否打印PMD信息false
pmdIgnoreFailuresPMD检查是否忽略失败false
pmdVersionPMD版本6.55.0
codenarcIgnoreFailuresCodenarc检查是否忽略失败false
codenarcVersionCodenarc版本3.2.0
jacocoVersionJacoco版本0.8.8
jacocoBranchCoverageRuleEnabled是否启用bundle分支覆盖检查true
jacocoBranchCoveredRatiobundle分支覆盖率0.9
jacocoInstructionCoverageRuleEnabled是否启用bundle指令覆盖检查true
jacocoInstructionExclusionbundle指令覆盖排除目录**/app
**/config
jacocoInstructionCoveredRatiobundle指令覆盖率0.9
jacocoPackageCoverageRuleEnabled是否启用package指令覆盖检查true
jacocoPackageExclusionpackage指令覆盖排除目录*.app
*.config
jacocoPackageCoveredRatiopackage指令覆盖率0.9
jacocoReportExclusion覆盖率报告排除目录**/Application.class
**/app/*.class
**/config/*.class

插件安装

Kotlin
plugins {
    id("pub.ihub.plugin.ihub-verification")
}

配置示例

PMD静态检查示例

Kotlin
iHubVerification {
    pmdConsoleOutput.set(true)
}

Codenarc静态检查示例

Kotlin
iHubVerification {
    codenarcIgnoreFailures.set(true)
}

Jacoco测试覆盖示例

Kotlin
iHubVerification {
    jacocoBranchCoverageRuleEnabled.set(true)
    jacocoInstructionCoverageRuleEnabled.set(true)
    jacocoPackageCoverageRuleEnabled.set(true)
}

测试报告

测试用例执行完成会生成用例报告,控制台会打印测试覆盖率

  • 单个项目测试覆盖率示例
  • 项目汇总测试覆盖率示例

  1. Project:项目类型插件,配置于build.gradle文件,类型说明详见open in new window ↩︎

  2. Ext(Extension):插件自定义扩展属性,配置于build.gradle文件,配置方式详见 ↩︎

  3. Prj(Project):项目属性,配置于gradle.properties文件,配置格式扩展名.属性名详见 ↩︎

  4. Sys(System):系统属性,如命令行传递的信息等,配置格式扩展名.属性名详见 ↩︎

  5. Env(Environment):环境变量属性,配置格式全部大写,多个单词,用_分隔详见 ↩︎