cargo-watch:ファイル変更時に自動ビルド・テストを実行する方法
cargo-watch はファイルの変更を検知して、cargo build や cargo test などのコマンドを自動で再実行するツールです。コードを書き直すたびに手動でコマンドを実行する手間がなくなります。
インストール
cargo install cargo-watch
インストール後、cargo watch コマンドが使えるようになります。
cargo watch --version
基本の使い方
-x オプションで実行する cargo サブコマンドを指定します。
# ファイル変更時に cargo run を実行 cargo watch -x run # ファイル変更時に cargo check を実行(型チェックのみ・高速) cargo watch -x check # ファイル変更時に cargo test を実行 cargo watch -x test # ファイル変更時に cargo build を実行 cargo watch -x build
開発中は cargo watch -x check が最も手軽です。cargo run より高速で、型エラーや文法エラーをすぐに確認できます。
複数コマンドを連続実行する
-x を複数並べると、順番に実行されます。前のコマンドが失敗すると後続のコマンドは実行されません。
# check が通ったら test を実行 cargo watch -x check -x test # check → test → run cargo watch -x check -x test -x run
監視対象を絞る
デフォルトはプロジェクト全体を監視します。-w で対象ディレクトリを指定したり、-i で除外したりできます。
# src/ ディレクトリのみ監視 cargo watch -x check -w src/ # tests/ も含めて監視 cargo watch -x test -w src/ -w tests/ # target/ を除外(デフォルトで除外されているので通常不要) cargo watch -x build -i target/
実行前にターミナルをクリアする
-c オプションをつけると、コマンドを実行するたびにターミナルをクリアします。出力が見やすくなります。
cargo watch -c -x check cargo watch -c -x test
まとめ
| コマンド | 説明 |
|---|---|
cargo watch -x run |
ファイル変更時に自動で実行 |
cargo watch -x check |
型チェックのみ・高速で確認 |
cargo watch -x test |
ファイル変更時に自動でテスト |
cargo watch -x check -x test |
check が通ったら test を実行 |
cargo watch -w src/ |
監視対象ディレクトリを指定 |
cargo watch -c -x check |
実行前にターミナルをクリア |
cargo-watch を使うことで、保存するたびにエラーをすぐ確認できる開発体験になります。クレートの追加方法については「cargo addでfeaturesを指定する方法:cargo-editなしで使える」も参照してください。