#覆盖率 #cargo #lcov #cargo 子命令 #gcov #子命令

app cargo-cov

通过 LLVM-GCOV 收集源覆盖率(⚠ 部分测试,可能吃掉你的衣物)

4 个版本

使用旧的 Rust 2015

0.0.5 2018年8月29日
0.0.4 2018年6月18日
0.0.3 2017年11月18日
0.0.1 2017年6月13日

#582 in Cargo 插件

MIT 许可证

235KB
4.5K SLoC

Rust 4K SLoC // 0.0% comments JavaScript 433 SLoC // 0.2% comments Python 111 SLoC C++ 18 SLoC

cargo-cov: Rust 的源覆盖率

cargo-cov 是一个 cargo 子命令,用于收集和报告 Rust 库的源覆盖率。 cargo-cov 利用 LLVM 的 gcov 兼容的配置生成传递,并支持许多平台。

  • ✓ FreeBSD, Linux, macOS, Windows (仅 MSVC)
  • ✓ x86_64, x86

用法:用于 nightly Rust 的本地测试

您可以通过 cargo 安装 cargo-cov

cargo install cargo-cov

典型的工作流程如下

# clean up previous coverage result
cargo cov clean

# test the code
cargo cov test

# open the coverage report
cargo cov report --open

用法:用于 stable Rust 的测试(1.19+)

我们强烈建议您使用 nightly Rust,因为只有 nightly 工具链内置了通过 -Zprofile 的配置支持的测试。

如果您必须使用稳定工具链,您可以尝试以下操作

  1. 安装编译器 rt 配置库。

    目标 指令
    Ubuntu, Debian 安装 libclang-common-7-dev,或者简单地安装 clang
    Fedora 安装 compiler-rt
    OpenSUSE 安装 llvm-clang
    Windows (MSVC) 从 LLVM 安装预构建的二进制文件 Clang for Windows
    macOS, iOS 由 Xcode 命令行工具提供
    Android 由 Android NDK 提供
  2. 单独执行 doc-test,正常测试之前运行。

    # Run --doc tests before other things before 1.19
    cargo cov test --doc
    cargo cov test --lib
    

我们无法保证使用此方法生成正确的覆盖率配置文件。

依赖

~15–27MB
~426K SLoC