You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Gradle项目中配置JavaScript目录并纳入Jacoco代码覆盖率统计

Gradle配置:将JavaScript目录纳入SourceSets并生成Jacoco覆盖率报告

1. 基础插件应用

确保build.gradle已应用必要插件:

plugins {
    id 'groovy'
    id 'jacoco'
}

2. 配置SourceSets,添加JavaScript目录

Gradle默认无内置JavaScript源集,需手动扩展sourceSets,将JS源码和测试脚本目录纳入项目:

sourceSets {
    main {
        // 保留已有的Groovy源码配置
        groovy {
            srcDir 'src/main/groovy'
        }
        // 添加自定义JavaScript源目录
        sources {
            create('javascript') {
                srcDir 'src/main/javascript'
                include '**/*.js' // 仅匹配JS文件
            }
        }
    }
    test {
        // 保留已有的Groovy测试配置
        groovy {
            srcDir 'src/test/groovy'
        }
        // 添加测试用JavaScript目录(按需配置)
        sources {
            create('javascriptTest') {
                srcDir 'src/test/javascript'
                include '**/*.js'
            }
        }
    }
}

3. 配置Jacoco报告,包含JavaScript代码

修改jacocoTestReport任务,让Jacoco识别JS源码并纳入覆盖率统计:

jacocoTestReport {
    // 关联主源码集
    sourceSets sourceSets.main
    
    afterEvaluate {
        // 确保Jacoco能识别JS文件和编译后的类文件
        classDirectories.setFrom(files(classDirectories.files.collect {
            fileTree(dir: it, include: ['**/*.class', '**/*.js'])
        }))
        // 将自定义的JavaScript源码目录加入Jacoco的源目录扫描范围
        sourceDirectories.setFrom(files(sourceDirectories.files + sourceSets.main.sources.javascript.srcDirs))
    }
    
    // 开启HTML和XML报告生成(按需调整)
    reports {
        html.required = true
        xml.required = true
    }
}

关键注意事项

  • 确保Groovy测试代码实际执行了JavaScript代码(比如通过JVM内置的Nashorn/GraalVM JS引擎调用),否则Jacoco无法收集到JS代码的覆盖率数据。
  • 如果JS代码通过外部环境(如Node.js)执行,上述配置无法直接生效,需额外工具(如nyc)收集覆盖率后导入Jacoco。

内容的提问来源于stack exchange,提问作者Gajendra Kumar Sahu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 09:55:18