cargo-cov
is a cargo subcommand which performs source coverage collection and reporting for Rust crates. cargo-cov
utilizes LLVM's gcov-compatible profile generation pass, and supports a lot of platforms.
- ✓ FreeBSD, Linux, macOS, Windows (MSVC only)
- ✓ x86_64, x86
You may install cargo-cov
via cargo
.
cargo install cargo-cov
The typical workflow is like this:
# clean up previous coverage result
cargo cov clean
# test the code
cargo cov test
# open the coverage report
cargo cov report --open
We strongly recommend you use nightly Rust since only the nightly toolchain has built-in instrumented profiling support
via -Zprofile
.
If you must use a stable toolchain, you may try the following:
-
Install the compiler-rt profile library.
Target Instruction Ubuntu, Debian Install libclang-common-7-dev
, or simply installclang
Fedora Install compiler-rt
OpenSUSE Install llvm-clang
Windows (MSVC) Install Clang for Windows Pre-Built Binary from LLVM macOS, iOS Provided by the Xcode command line tools Android Provided by Android NDK -
Execute the doc-test separately from the normal tests. Run the doc-test before the normal tests.
# Run --doc tests before other things before 1.19 cargo cov test --doc cargo cov test --lib
We do not guarantee that a correct coverage profile will be generated using this method.