#覆盖率 #格式 #转换 #llvm-cov #cargo #codecov #工具

应用程序 cargo-llvm-codecov-converter

从 llvm-cov 格式转换为 codecov 格式的转换工具

1 个不稳定版本

0.1.0 2021年1月1日

#259性能分析

MIT 许可协议

15KB
353 代码行

cargo-llvm-codecov-converter

从 llvm-cov 格式转换为 codecov 格式

安装:cargo install cargo-llvm-codecov-converter

通过 StdinStdout 将来自 llvm-cov 导出工具 的 llvm-cov json 格式输出转换为 codecov 自定义覆盖率格式

例如,计算 Rust 代码的覆盖率

export LLVM_PROFILE_FILE="target/debug/coverage/<my-crate>-%m.profraw"

# build the test binary with coverage instrumentation
executables=$(RUSTFLAGS="-Zinstrument-coverage" cargo test --tests --no-run --message-format=json | jq -r "select(.profile.test == true) | .executable")

# run instrumented tests
$executables

# combine profraw files
cargo profdata -- merge -sparse target/debug/coverage/<my-crate>-*.profraw -o target/debug/coverage/<my-crate>.profdata

# collect coverage
cargo cov -- export $executables \
    --instr-profile=target/debug/coverage/<my-crate>.profdata \
    --ignore-filename-regex="(.*\.cargo/registry/.*)|(.*\.rustup/.*)|(.*test.*)" \
    --skip-functions \
    | cargo llvm-codecov-converter > target/debug/coverage/<my-crate>.json

注意将管道符号引入 cargo llvm-codecov-converter

依赖项

~1.9–2.8MB
~59K SLoC