Rustでテストカバレッジを測ってみる

はじめに

この記事では、「Rustでのテストカバレッジの計測」について書いています。

Rustでテストカバレッジを測ってみました。

Rustを色々勉強中ですが知らないこともまだたくさんあり、Rustの勉強も兼ねて記事を書きました。

自分に向けた備忘録の意味もありますが、「Rustでテストカバレッジを測りたい」な人の一助になれば嬉しいです。

テストカバレッジを見る方法はいくつかあるようですが、その中で最近よく使われているそうなcargo-llvm-covで行ってみました。

環境

導入

Rustでテストカバレッジを測るため、下記のコマンド2つを実行してください

cargo install cargo-llvm-cov
rustup component add llvm-tools-preview

カバレッジを測ってみる

カバレッジを測るための簡単なRustコードを用意します。

fn fizzbuzz(num: u32) -> String {
    if num%15 == 0 {
        "fizzbuzz".to_string()
    } else if num%3 == 0 {
        "fizz".to_string()
    } else if num%5 == 0 {
        "buzz".to_string()
    } else {
        num.to_string()
    }
}

fn main() {
    let num = 10;
    println!("{}", fizzbuzz(num));
}

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

    #[test]
    fn test_fizz() {
        assert_eq!("fizz".to_string(), fizzbuzz(3));
    }
    
    #[test]
    fn test_buzz() {
        assert_eq!("buzz".to_string(), fizzbuzz(5));
    }
    
    #[test]
    fn test_fizzbuzz() {
        assert_eq!("fizzbuzz".to_string(), fizzbuzz(15));
    }
}

これに対して、以下のコマンドを実行してカバレッジを見てみます。

cargo llvm-cov

すると以下のような出力が得られ、カバレッジの結果が出力されていることが分かります。

おわりに

「Rustでのテストカバレッジの計測」について解説しました。

Rustでcargo-llvm-covを使ってテストカバレッジを測ってみました。

htmlで出力したりも出来るみたいですので、今後試していきたいと思います。

参考

www.getto.systems