mcpField
R
run-tests

run-tests

github.com/coralogix测试与质量233565 次安装今天更新
代码仓库

关于 run-tests

用于测试和验证 Coralogix `cx` CLI 的技能,帮助贡献者根据改动选择 Rust 测试、格式检查、Lint 和构建命令。

主要功能

  1. 01运行全部或指定 Cargo 测试
  2. 02检查或修复 Rust 格式
  3. 03以警告即错误运行 Clippy
  4. 04构建 CLI
  5. 05排查常见测试失败

适用场景

  1. 01提交前验证代码改动
  2. 02运行指定命令或模块的测试
  3. 03排查格式、Lint 或编译问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/coralogix/cx-cli --skill run-tests

安装后在 Claude Code 中输入/run-tests确认已加载。

详细介绍

运行测试并验证

介绍如何在 cx CLI 中运行测试、lint 和验证更改。本技能仅涵盖运行测试;如需编写新测试,请参阅 add-command 技能。

快速参考

命令作用
cargo test运行所有单元测试和集成测试
cargo test <name>运行名称中包含指定子字符串的测试
cargo test -- --ignored运行集成测试(依赖文件系统,默认跳过)
cargo fmt --check检查格式(不做更改)
cargo fmt自动修复格式
cargo clippy --locked -- -D warnings执行 lint,并将警告视为错误
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 环境中,这属于预期情况。

评论

支持 Markdown