1

当我想测试 C++ 覆盖率时,我可以使用 构建我的程序-fprofile-arcs -ftest-coverage,运行所有测试,然后运行gcov以获取覆盖率。

然而,当谈到 Rust 时,我完全迷失了。我想要做的是运行以下测试(在我的 Mac 上),并覆盖路径中的所有 Rust 代码components/raftstore

cargo test --package tests --test failpoints cases::test_normal
cargo test --package tests --test failpoints cases::test_bootstrap
cargo test --package tests --test failpoints cases::test_compact_log

这篇文章中,它说首先运行cargo test --no-run,然后运行kcov。但是,当我真正这样做时,kcov 会永远阻塞。

然后我找到了一个叫做 cargo kcov,谁提供的东西--test。但是,当我cargo kcov --test failpoints cases::test_normal像我所做的那样运行时cargo test,我得到了错误

error: cargo subcommand failure
note: cargo test exited with code exit status: 101
error: no test target named `failpoints`

我已经尝试了很多方法来解决这个问题,但是,它们都不起作用,所以我想知道我是否可以在这里得到一些帮助。

我知道还有其他覆盖工具,例如tarpaulingrcov,我目前正在尝试这些工具。如果这些覆盖工具有简洁的解决方案也是可以接受的。但是,我仍然想知道kcovand有什么问题cargo-kcov

4

0 回答 0