cargo-llvm-cov Cargo subcommand to easily use LLVM source-based code coverage (-C instrument-coverage). USAGE: cargo llvm-cov [SUBCOMMAND] [OPTIONS] [-- ...] ARGS: ... Arguments for the test binary OPTIONS: --json Export coverage data in "json" format If --output-path is not specified, the report will be printed to stdout. This internally calls `llvm-cov export -format=text`. See for more. --lcov Export coverage data in "lcov" format If --output-path is not specified, the report will be printed to stdout. This internally calls `llvm-cov export -format=lcov`. See for more. --cobertura Export coverage data in "cobertura" XML format If --output-path is not specified, the report will be printed to stdout. This internally calls `llvm-cov export -format=lcov` and then converts to cobertura.xml. See for more. --codecov Export coverage data in "Codecov Custom Coverage" format If --output-path is not specified, the report will be printed to stdout. This internally calls `llvm-cov export -format=json` and then converts to codecov.json. See for more. --text Generate coverage report in “text” format If --output-path or --output-dir is not specified, the report will be printed to stdout. This internally calls `llvm-cov show -format=text`. See for more. --html Generate coverage report in "html" format If --output-dir is not specified, the report will be generated in `target/llvm-cov/html` directory. This internally calls `llvm-cov show -format=html`. See for more. --open Generate coverage reports in "html" format and open them in a browser after the operation. See --html for more. --summary-only Export only summary information for each file in the coverage data This flag can only be used together with --json, --lcov, or --cobertura. --output-path Specify a file to write coverage data into. This flag can only be used together with --json, --lcov, --cobertura, or --text. See --output-dir for --html and --open. --output-dir Specify a directory to write coverage report into (default to `target/llvm-cov`). This flag can only be used together with --text, --html, or --open. See also --output-path. --failure-mode Fail if `any` or `all` profiles cannot be merged (default to `any`) --ignore-filename-regex Skip source code files with file paths that match the given regular expression --show-instantiations Show instantiations in report --no-cfg-coverage Unset cfg(coverage), which is enabled when code is built using cargo-llvm-cov --no-cfg-coverage-nightly Unset cfg(coverage_nightly), which is enabled when code is built using cargo-llvm-cov and nightly compiler --no-report Run tests, but don't generate coverage report --no-clean Build without cleaning any old build artifacts --fail-under-functions Exit with a status of 1 if the total function coverage is less than MIN percent --fail-under-lines Exit with a status of 1 if the total line coverage is less than MIN percent --fail-under-regions Exit with a status of 1 if the total region coverage is less than MIN percent --fail-uncovered-lines Exit with a status of 1 if the uncovered lines are greater than MAX --fail-uncovered-regions Exit with a status of 1 if the uncovered regions are greater than MAX --fail-uncovered-functions Exit with a status of 1 if the uncovered functions are greater than MAX --show-missing-lines Show lines with no coverage --include-build-script Include build script in coverage report --dep-coverage Show coverage of the specified dependency instead of the crates in the current workspace. (unstable) --skip-functions Skip exporting per-function coverage data. This flag can only be used together with --json, --lcov, or --cobertura. --branch Enable branch coverage. (unstable) --mcdc Enable mcdc coverage. (unstable) --doctests Including doc tests (unstable) This flag is unstable. See for more. --no-run Generate coverage report without running tests --no-fail-fast Run all tests regardless of failure --ignore-run-fail Run all tests regardless of failure and generate report If tests failed but report generation succeeded, exit with a status of 0. -q, --quiet Display one character per test instead of one line --lib Test only this package's library unit tests --bin Test only the specified binary --bins Test all binaries --example Test only the specified example --examples Test all examples --test Test only the specified test target --tests Test all tests --bench Test only the specified bench target --benches Test all benches --all-targets Test all targets --doc Test only this library's documentation (unstable) This flag is unstable because it automatically enables --doctests flag. See for more. -p, --package Package to run tests for --workspace Test all packages in the workspace --all Alias for --workspace (deprecated) --exclude Exclude packages from both the test and report --exclude-from-test Exclude packages from the test (but not from the report) --exclude-from-report Exclude packages from the report (but not from the test) -j, --jobs Number of parallel jobs, defaults to # of CPUs -r, --release Build artifacts in release mode, with optimizations --profile Build artifacts with the specified profile -F, --features Space or comma separated list of features to activate --all-features Activate all available features --no-default-features Do not activate the `default` feature --target Build for the target triple When this option is used, coverage for proc-macro and build script will not be displayed because cargo does not pass RUSTFLAGS to them. --coverage-target-only Activate coverage reporting only for the target triple Activate coverage reporting only for the target triple specified via `--target`. This is important, if the project uses multiple targets via the cargo bindeps feature, and not all targets can use `instrument-coverage`, e.g. a microkernel, or an embedded binary. -v, --verbose Use verbose output Use -vv (-vvv) to propagate verbosity to cargo. --color Coloring: auto, always, never --remap-path-prefix Use --remap-path-prefix for workspace root Note that this does not fully compatible with doctest. --include-ffi Include coverage of C/C++ code linked to Rust library/binary Note that `CC`/`CXX`/`LLVM_COV`/`LLVM_PROFDATA` environment variables must be set to Clang/LLVM compatible with the LLVM version used in rustc. --keep-going Do not abort the build as soon as there is an error (unstable) --ignore-rust-version Ignore `rust-version` specification in packages --manifest-path Path to Cargo.toml --frozen Require Cargo.lock and cache are up to date --locked Require Cargo.lock is up to date --offline Run without accessing the network -Z Unstable (nightly-only) flags to Cargo, see 'cargo -Z help' for details -h, --help Print help information -V, --version Print version information SUBCOMMANDS: test Run tests and generate coverage report This is equivalent to `cargo llvm-cov` without subcommand, except that test name filtering is supported. run Run a binary or example and generate coverage report report Generate coverage report show-env Output the environment set by cargo-llvm-cov to build Rust projects clean Remove artifacts that cargo-llvm-cov has generated in the past nextest Run tests with cargo nextest This internally calls `cargo nextest run`.