#coverage #cargo #cargo-subcommand #cargo-test #subcommand #kcov

app cargo-kcov

Cargo 子命令,用于在 Linux 上运行 kcov 获取覆盖率报告

12 个版本

使用旧的 Rust 2015

0.5.2 2018年10月13日
0.5.1 2018年7月14日
0.5.0 2018年5月9日
0.4.2 2017年9月23日
0.2.0 2016年6月4日

#395 in Cargo 插件

每月 49 次下载

MIT 许可证

51KB
917 代码行

cargo-kcov

Build status Coverage Status MIT

使用 kcov 在 Linux 和 macOS 上收集当前项目的所有测试用例的测试覆盖率。

用法

在项目目录下运行

$ cargo kcov

它将运行所有测试用例,并通过 kcov 收集覆盖率统计。覆盖率报告可以从 target/cov/index.html 读取。

先决条件

您需要安装 kcov v26 或更高版本以从 Rust 收集覆盖率报告。一些发行版仍在使用 v25 或 v11,因此您需要从源代码构建。

对于 macOS,您需要 kcov v35 或更高版本。请注意,与 Linux 相比,macOS 的性能显著较慢。如果您在 CI 上收集覆盖率统计,并且没有时间处理,请考虑忽略 macOS。

请遵循 https://users.rust-lang.org/t/650 中的说明。cargo-kcov 需要 v30 或更高版本,因为早期的 kcov 版本没有报告其版本号。

cargo-kcov 需要 Rust 1.20.0 或更高版本(由于 bitflags 依赖项)。

安装

可以使用 cargo install 安装 cargo-kcov

$ cargo install cargo-kcov

选项

cargo-kcov 0.5.1
Generate coverage report via kcov

USAGE:
    cargo kcov [OPTIONS] [--] [KCOV-ARGS]...

OPTIONS:
        --lib                      Test only this package's library
        --bin <NAME>...            Test only the specified binary
        --example <NAME>...        Test only the specified example
        --test <NAME>...           Test only the specified integration test target
        --bench <NAME>...          Test only the specified benchmark target
    -j, --jobs <N>                 The number of jobs to run in parallel
        --release                  Build artifacts in release mode, with optimizations
        --features <FEATURES>      Space-separated list of features to also build
        --no-default-features      Do not build the `default` feature
        --target <TRIPLE>          Build for the target triple
        --manifest-path <PATH>     Path to the manifest to build tests for
        --no-fail-fast             Run all tests regardless of failure
        --kcov <PATH>              Path to the kcov executable
    -o, --output <PATH>            Output directory, default to [target/cov]
    -v, --verbose                  Use verbose output
        --all                      In a workspace, test all members
        --open                     Open the coverage report on finish
        --coveralls                Upload merged coverage data to coveralls.io from Travis CI
        --no-clean-rebuild         Do not perform a clean rebuild before collecting coverage. This improves performance
                                   when the test case was already built for coverage, but may cause wrong coverage
                                   statistics if used incorrectly. If you use this option, make sure the `target/`
                                   folder is used exclusively by one rustc/cargo version only, and the test cases are
                                   built with `RUSTFLAGS="-C link-dead-code" cargo test`.
        --print-install-kcov-sh    Prints the sh code that installs kcov to `~/.cargo/bin`. Note that this will *not*
                                   install dependencies required by kcov.
    -h, --help                     Prints help information
    -V, --version                  Prints version information

ARGS:
    <KCOV-ARGS>...    Further arguments passed to kcov. If empty, the default arguments `--verify --exclude-
                      pattern=$CARGO_HOME` will be passed to kcov.

依赖项

~3.5–5.5MB
~86K SLoC