げっとシステムログ

WEB開発メモ

Rust でカバレッジを取る話

CONTENTS
  1. Rust でカバレッジを取るには
  2. cargo-llvm-cov のインストール
  3. まとめ
  4. 参考資料

Rust でカバレッジを取るには

この記事のとおり、ツールが整ってきたので、以下のコマンドでカバレッジを取りつつテストができる。

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

cargo llvm-cov で、テストが走ってカバレッジが計測される。

TOP

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 も落ちる。

TOP

まとめ

Rust のカバレッジが簡単に取れるようになった、というお話でした。

TOP

参考資料

TOP