run-tests について
Coralogix `cx` CLI のテストと検証を支援するスキルです。変更内容に応じた Rust のテスト、フォーマット、Lint、ビルドコマンドを案内します。
主な機能
- 01全体または対象を絞った Cargo テスト
- 02Rust のフォーマット確認と修正
- 03警告をエラーとして扱う Clippy
- 04CLI のビルド
- 05よくあるテスト失敗の診断
活用シーン
- 01コミット前の変更確認
- 02特定コマンドやモジュールのテスト
- 03フォーマット・Lint・コンパイル失敗の調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ coralogix/ cx-cli --skill run-testsインストール後、Claude Code で/run-testsを入力して読み込まれたか確認します。
詳細
テストの実行と検証
cx CLI でテスト、リンティング、変更の検証を行う方法です。このスキルでは実行のみを扱います。新しいテストの作成については、add-command スキルを参照してください。
クイックリファレンス
| コマンド | 内容 |
|---|---|
cargo test | すべての単体テストと統合テストを実行します |
cargo test <name> | 名前の一部が一致するテストを実行します |
cargo test -- --ignored | 統合テストを実行します(ファイルシステムに依存するため、既定ではスキップされます) |
cargo fmt --check | フォーマットを確認します(変更は行いません) |
cargo fmt | フォーマットを自動修正します |
cargo clippy --locked -- -D warnings | 警告をエラーとしてリンティングします |
cargo build | コンパイルを検証します |
CI の全チェック
以下は、CI がすべての PR で実行する正確な手順です。コミットまたは PR の作成前に実行してください。
cargo fmt --check && cargo clippy --locked -- -D warnings && cargo test --locked
--locked フラグにより、ロックファイルが確実に適用されます。これは .github/workflows/test.yml および lint.yml と完全に一致します。CI は Ubuntu、macOS、Windows でテストを実行します。
変更後に実行する内容
変更内容に応じて、適切なレベルの検証を選んでください。
- 任意の
.rsファイル -cargo test+cargo clippy --locked -- -D warnings - フォーマットのみ -
cargo fmt --check(自動修正する場合はcargo fmt) Cargo.toml- CI の全チェック(依存関係の変更はすべてに影響します)- API 型(
src/commands/<cmd>/api.rs) - まず対象コマンドのテストを実行し(cargo test alerts、cargo test dataprime)、その後すべてのテストを実行します - テストファイルのみ -
cargo test <relevant_test_name>
特定のテストを実行する
テストスイート全体を実行する代わりに、対象を絞って効率的にテストを実行してください。
cargo test alerts- 名前に「alerts」を含むすべてのテストcargo test --test dataprime-tests/dataprime/の統合テストバイナリのみ(input + output + query)cargo test --test dataprime input- そのバイナリのinputサブモジュールのみcargo test config::tests-configモジュール内のテストのみcargo test metrics::tests- metrics のフォーマットに関するテストのみ
失敗の解釈
Clippy の警告 - -D warnings によりエラーとして扱われます。コミット前にすべての警告を修正してください。よくある原因は、未使用の変数、不要なクローン、エラー処理の不足です。
フォーマットの失敗 - cargo fmt を実行して自動修正してください。手作業での修正は必要ありません。
デシリアライズテストの失敗 - 通常、構造体のフィールド名が JSON キーと一致していないことを示します。レスポンス型に #[serde(rename_all = "camelCase")] が付いていること、Vec フィールドに #[serde(default)] が付いていることを確認してください(API では空の配列が省略されることがあります)。
テストのコンパイルエラー - 公開関数のシグネチャを変更したことが原因である可能性があります。src/ と tests/ ディレクトリの両方で呼び出し元を確認してください。
統合テストの失敗(--ignored) - ファイルシステムの状態(~/.cx/ 設定ディレクトリ)に依存します。ローカル環境が設定されていない場合、失敗することがあります。設定が存在しない CI では想定どおりです。