当我想测试 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`
我已经尝试了很多方法来解决这个问题,但是,它们都不起作用,所以我想知道我是否可以在这里得到一些帮助。
我知道还有其他覆盖工具,例如tarpaulin
和grcov
,我目前正在尝试这些工具。如果这些覆盖工具有简洁的解决方案也是可以接受的。但是,我仍然想知道kcov
and有什么问题cargo-kcov
。