# Cmd Checker

`type: cmd` 用于执行本地命令或脚本，并校验退出码、stdout、stderr 和耗时。

## 配置项

| 字段       | 说明                                 | 必填 | 默认值 |
| ---------- | ------------------------------------ | ---- | ------ |
| `cmd.exec` | 可执行文件名或路径                   | 是   | 无     |
| `cmd.args` | 命令行参数列表                       | 否   | `[]`   |
| `cmd.env`  | 环境变量覆盖，继承进程环境变量并合并 | 否   | 无     |
| `cmd.cwd`  | 工作目录，相对于配置文件所在目录     | 否   | 无     |

## expect 校验项

| 字段         | 说明                                          | 必填 | 默认值 |
| ------------ | --------------------------------------------- | ---- | ------ |
| `exitCode`   | 可接受的退出码列表                            | 否   | `[0]`  |
| `stdout`     | 标准输出校验，使用 `ContentExpectations` 数组 | 否   | 无     |
| `stderr`     | 标准错误校验，使用 `ContentExpectations` 数组 | 否   | 无     |
| `durationMs` | 完整执行耗时校验，使用 `ValueMatcher`         | 否   | 无     |

## 示例

```yaml
- id: "bun-script"
  name: "Bun 脚本检查"
  type: cmd
  cmd:
    exec: "bun"
    args: ["-e", "console.log('ok')"]
  expect:
    exitCode: [0]
    stdout:
      - contains: "ok"
```

Docker 官方镜像不内置常见外部命令。容器内使用 CMD checker 时，按需通过派生镜像安装依赖命令。
