CONTENTS
Rust でカバレッジを取るには
この記事のとおり、ツールが整ってきたので、以下のコマンドでカバレッジを取りつつテストができる。
cargo install cargo-llvm-cov rustup component add llvm-tools-preview cargo llvm-cov
cargo llvm-cov
で、テストが走ってカバレッジが計測される。
cargo-llvm-cov のインストール
cargo install cargo-llvm-cov
でインストールすると、ソースからのビルドになるので時間がかかる。
そこで、CI では以下のように github からビルド済みバイナリをダウンロードするようにした。
#!/bin/sh local target target=$1 if [ -z "$target" ]; then echo "usage: setup-test.sh <install-dir>" exit 1 fi mkdir -p $target install_cargo_llvm_cov install_cargo_llvm_cov() { local version version=$( curl --silent "https://api.github.com/repos/taiki-e/cargo-llvm-cov/releases/latest" | \ grep '"tag_name":' | \ sed -E 's/.*"v([^"]+)".*/\1/' \ ) curl -L -o $target/cargo-llvm-cov.tar.gz https://github.com/taiki-e/cargo-llvm-cov/releases/download/v${version}/cargo-llvm-cov-x86_64-unknown-linux-musl.tar.gz cd $target tar xvzf cargo-llvm-cov.tar.gz rm cargo-llvm-cov.tar.gz cd - }
ただし、github が落ちてると CI も落ちる。
まとめ
Rust のカバレッジが簡単に取れるようになった、というお話でした。