Open1

Rustでテストカバレッジを取得したい

yoshiyasu1111yoshiyasu1111

cargo-llvm-cov

$ rustup component add llvm-tools-preview
$ cargo install cargo-llvm-cov
$ cargo new coverage --lib
pub fn add(left: usize, right: usize) -> usize {
    left + right
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn it_works() {
        let result = add(2, 2);
        assert_eq!(result, 4);
    }
}
$ cd coverage/
$ cargo llvm-cov
   Compiling coverage v0.1.0 (/workspaces/rust/coverage)
    Finished test [unoptimized + debuginfo] target(s) in 0.23s
     Running unittests src/lib.rs (target/llvm-cov-target/debug/deps/coverage-22041f9ba5e5f909)

running 1 test
test tests::it_works ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

Filename                                 Regions    Missed Regions     Cover   Functions  Missed Functions  Executed       Lines      Missed Lines     Cover    Branches   Missed Branches     Cover
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/workspaces/rust/coverage/src/lib.rs           4                 0   100.00%           3                 0   100.00%           8                 0   100.00%           0                 0         -
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TOTAL                                          4                 0   100.00%           3                 0   100.00%           8                 0   100.00%           0                 0         -

HTML形式で出力する

$ cargo llvm-cov --html

実行箇所の確認