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

如何通过Space Automation向Qodana Cloud上传代码覆盖率?

问题分析与解决步骤

你的Space Automation脚本和Qodana配置缺少代码覆盖率相关的核心执行与配置环节,以下是需要补充的关键内容:

1. 在CI流程中先执行测试生成覆盖率报告

Qodana本身不会自动触发测试生成覆盖率数据,必须先运行项目测试命令,生成Jacoco格式的覆盖率报告(Qodana默认支持Jacoco格式)。

修改.space.kts脚本,在qodana命令前添加测试命令,示例(根据项目构建工具调整):

job("Qodana") {
  startOn {
    gitPush {
      anyBranchMatching {
        +"main"
      }
    }
    codeReviewOpened{}
  }
  container("jetbrains/qodana-jvm") {
    env["QODANA_TOKEN"] = "{{ project:qodana-token }}"
    shellScript {
      // Gradle项目示例:先执行测试生成Jacoco报告,再运行Qodana
      content = """
        ./gradlew test jacocoTestReport
        qodana
      """.trimIndent()
      // Maven项目替换为:
      // content = "mvn test jacoco:report && qodana"
    }
  }
}

2. 在qodana.yaml中配置覆盖率报告路径

需要明确告知Qodana覆盖率报告的存放位置,添加coverage配置块:

version: "1.0"

#Specify inspection profile for code analysis
profile:
  name: qodana.recommended

#Enable inspections
include:
  - name: CheckDependencyLicenses

projectJDK: 17 #(Applied in CI/CD pipeline)

#Specify Qodana linter for analysis (Applied in CI/CD pipeline)
linter: jetbrains/qodana-jvm:latest

# 配置代码覆盖率报告路径
coverage:
  paths:
    # Gradle项目默认路径,Maven项目替换为target/site/jacoco/jacoco.xml
    - build/reports/jacoco/test/jacocoTestReport.xml

补充说明

  • 确保项目已配置Jacoco插件(本地能生成覆盖率说明已配置,CI环境会复用项目配置);
  • 如果使用的jetbrains/qodana-jvm镜像未预装Gradle/Maven,需在脚本中提前安装对应工具,或更换包含构建工具的镜像。

内容的提问来源于stack exchange,提问作者Java Devil

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 20:40:02