Qdrant 怎么本地生成测试覆盖率报告?cargo-llvm-cov 使用与 HTML 报告查看

发布时间:2026/9/10 13:57:23
Qdrant 怎么本地生成测试覆盖率报告?cargo-llvm-cov 使用与 HTML 报告查看 Qdrant 怎么本地生成测试覆盖率报告cargo-llvm-cov 使用与 HTML 报告查看【免费下载链接】qdrantQdrant - High-performance, massive-scale Vector Database and Vector Search Engine for the next generation of AI. Also available in the cloud https://cloud.qdrant.io/项目地址: https://gitcode.com/GitHub_Trending/qd/qdrant你在 Qdrant 仓库里改完代码后想确认改动覆盖了哪些 Rust 单元测试、哪些行没有被测到。Qdrant 的开发者文档 docs/DEVELOPMENT.md 在 “Coverage reports” 一节给出了本地生成覆盖率报告的完整流程安装cargo-llvm-cov运行仓库自带的覆盖率脚本然后用本地 HTTP 服务在浏览器里查看 HTML 报告。需要先明确一个边界文档说明这类报告目前只覆盖 Rust 单元测试不包含 Python 集成测试的覆盖率。准备Rust 环境与 cargo-llvm-cov按 docs/DEVELOPMENT.md 的 “Local development” 一节本地开发环境需要先安装 Rust 工具链文档要求安装 Rust 及rustfmt组件Debian 等系统还需gcc-multilib、clang、cmake等依赖保证仓库能正常编译后再谈覆盖率。覆盖率工具本身用 cargo 安装cargo install cargo-llvm-cov这一步是后续所有cargo llvm-cov命令的前提文档中的本地流程从这条命令开始。运行单元测试覆盖率脚本Qdrant 仓库内置了 tools/unit-test-coverage.sh。注意一个文档与仓库现状的差异docs/DEVELOPMENT.md 中写的命令是./tools/coverage.sh而仓库中实际存在的脚本文件名是tools/unit-test-coverage.sh该脚本头部注释仍写着Usage: tools/coverage.sh。以你检出的文件中实际存在的路径为准执行。在仓库根目录运行默认模式整个 workspace 一次性跑完./tools/unit-test-coverage.sh脚本默认RUN_PER_PACKAGEfalse实际执行两条核心命令摘自脚本内容cargo llvm-cov --no-clean nextest --profile ci --workspace --lcov --output-path lcov.info cargo llvm-cov report --html第一条通过nextest以ciprofile 跑全 workspace 的 Rust 单元测试并产出 lcov 数据第二条生成 HTML 报告。文档说明这种整仓一把跑的方式假设机器有足够内存。低内存机器如 GitHub CI 那类环境改用逐包模式脚本头部注释给出的用法是RUN_PER_PACKAGEtrueRUN_PER_PACKAGEtrue ./tools/unit-test-coverage.sh该模式会用jq解析出 workspace 成员列表逐个包执行cargo llvm-cov ... nextest --profile ci -p package每包结束后执行cargo llvm-cov clean -p package清理中间产物最后用lcov命令把各包报告合并为unit-test-coverage.lcov。走这条分支需要环境里有jq和lcov两个工具。这里用到的ciprofile 定义在 .config/nextest.toml失败测试指数退避重试 1 次、fail-fast false首个失败不会终止整轮测试并保存junit.xml报告。在浏览器中查看 HTML 报告脚本跑完后HTML 报告位于target/llvm-cov/html。按文档给出的方式起一个本地静态服务cd target/llvm-cov/html python -m http.server open http://localhost:8000python -m http.server会在 8000 端口服务当前目录open http://localhost:8000是文档中用默认浏览器打开该地址的写法Linux 终端没有open命令时直接用浏览器访问 http://localhost:8000 即可。打开后即可按包、按文件逐层查看覆盖率文档给出的本地报告效果如上图文档示例。同时仓库根目录会留下lcov.info数据文件可供其他工具消费。限制与日常维护覆盖范围文档明确这类报告 currently 只覆盖 Rust 单元测试。Python 集成测试有独立的 tools/integration-test-coverage.sh它带 instrumentation 构建二进制并运行tests/integration-tests.sh等测试套件只合并生成integration-test-coverage.lcovlcov 格式不产出 HTML 报告属于另一条测试路径本文不展开。产物膨胀两个脚本的注释都提醒本地反复跑覆盖率后偶尔执行cargo llvm-cov clean避免target/llvm-cov-target目录被.profraw文件撑大cargo llvm-cov cleanCI 对照文档说明 Qdrant 每天在 CI 生成覆盖率报告仅 Rust 单元测试本地生成的报告格式与之对应方便与日常基线对照。【免费下载链接】qdrantQdrant - High-performance, massive-scale Vector Database and Vector Search Engine for the next generation of AI. Also available in the cloud https://cloud.qdrant.io/项目地址: https://gitcode.com/GitHub_Trending/qd/qdrant创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询