资讯动态

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

发布时间:2026/9/10 13:57:22 来源:尧图企业网站定制
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),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价