mcpField
A
antithesis-launch

antithesis-launch

github.com/antithesishq测试与质量302508 次安装1 周前更新
代码仓库

关于 antithesis-launch

用于在仓库中配置并提交 Antithesis 测试运行的技能。它检查配置、构建镜像并按顺序验证后启动运行,遇到必要信息缺失或验证失败时会停止。

主要功能

  1. 01检查 snouty 版本与容器环境
  2. 02定位 Antithesis 配置目录
  3. 03构建容器镜像
  4. 04验证配置后启动运行
  5. 05报告运行 ID 和命令

适用场景

  1. 01为仓库启动 Antithesis 测试
  2. 02验证测试配置并提交运行
  3. 03依据用户指定参数启动预构建镜像测试

安装

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

$npx skills add https://github.com/antithesishq/antithesis-skills --skill antithesis-launch

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

详细介绍

Antithesis 启动

技能版本: 2026-10-21 4f8d80b

前置条件

  • 如果未安装 snouty,请勿继续。安装选项请参阅 https://raw.githubusercontent.com/antithesishq/snouty/refs/heads/main/README.md。
  • 如果 snouty 版本低于 0.8.0,请勿继续。使用 snouty --version 查看版本。使用 snouty update 更新。
  • 运行 snouty doctor。它会检查容器运行时和 compose CLI。向用户报告两者,并使用同一组合进行构建。此技能使用 docker compose;如果 snouty 指定的 CLI 是 docker-compose,则改用它。

目标

仅按以下顺序启动 Antithesis 运行:

  1. docker compose build(如果用户要求使用预构建镜像,则跳过)
  2. snouty validate
  3. 如果验证失败,则停止并报告错误
  4. snouty launch

必需输入

  • 必须提供以分钟为单位的 duration。如果用户未提供,请在提交运行前询问。

探索

  • 从用户提供的任意路径、命令或 Antithesis 目录名称开始。
  • 否则,检查代码库,了解测试框架的配置方式。选择命令前,检查附近的 AGENTS.md、README*、Makefile* 和 Antithesis 专用脚本。
  • 通过查找适用于 Antithesis 的 docker-compose.yaml 来确定配置目录。优先考虑 antithesis/config 之类的目录,但也要支持非标准布局。
  • 以下内容是 Antithesis 的强烈信号:附近存在 scratchbook/ 或 test/ 目录、compose 内容提及 /opt/antithesis、ANTITHESIS_ 环境变量、setup_complete,或现有的 snouty 示例。
  • 如果有多个 compose 文件看起来都符合条件,优先选择代码库文档或现有 snouty launch 示例中引用的文件。如果仍无法确定,请询问用户,不要猜测。
  • 将包含 docker-compose.yaml 的目录作为 snouty validate <CONFIG> 和 snouty launch --config <CONFIG> 的参数。
  • 针对该确切文件进行构建:docker compose -f <CONFIG>/docker-compose.yaml build。
  • snouty 不会构建或拉取镜像,因此所有镜像必须已经存在于 snouty 所选引擎的镜像存储中。如果同时安装了两个引擎,snouty 优先选择 podman。
    • 使用 SNOUTY_CONTAINER_ENGINE=docker 强制 snouty 使用 docker 的镜像存储。
  • 使用 podman 时,使用 podman compose -f <CONFIG>/docker-compose.yaml build 进行构建。该包装器会通过 podman 的 API 套接字执行 Docker Compose v2,因此镜像会存入 podman 的镜像存储。先检查提供程序:podman compose version 必须输出 Docker Compose version ...,因为找不到 Compose v2 二进制文件时,podman 会回退到 Python 工具 podman-compose。

运行参数

  • 按以下顺序确定启动器:用户明确指定的内容、现有代码库文档/脚本/示例;否则,使用 docker-compose.yaml 文件时默认为 basic_test,使用 kubernetes 配置时默认为 basic_k8s_test。

  • 如果用户明确要求使用预构建镜像启动运行,则使用用户提供的镜像引用运行 snouty launch --config-image <CONFIG_IMAGE>。

  • 否则,使用 snouty launch --config <CONFIG>,这需要 ANTITHESIS_REPOSITORY。如果当前环境中已设置该变量,则沿用;否则停止并向用户询问。

  • 始终明确设置以下所有参数:

    • --duration:用户提供的运行时长
    • --source:代码库名称
    • --test-name:代码库名称加分支名称或配置名称
    • --description:简短易读的运行说明,包括分支名称、当前目标或自上次运行以来的更改等信息。
  • 允许覆盖:如果用户或调用此技能的其他技能指定了启动参数,则使用其提供的值,而不是上述默认值。

执行

  • 这些命令可能需要很长时间。优先在后台执行或设置较长的超时时间,不要假设它们会很快完成。
  • 只有在构建成功且 snouty validate 成功退出后,才能运行 snouty launch。
docker compose -f "$CONFIG_DIR/docker-compose.yaml" build
snouty validate "$CONFIG_DIR"
snouty launch \
  --json \
  --launcher "$LAUNCHER" \
  --config "$CONFIG_DIR" \
  --duration "$DURATION" \
  --source "$SOURCE" \
  --test-name "$TEST_NAME" \
  --description "$DESCRIPTION"

输出

  • 在提交前,报告配置目录、compose 构建命令、验证命令,以及最终的 snouty launch 命令格式。
  • 如果验证失败,立即停止,并展示失败的命令及关键错误。
  • --json 标志会使 snouty launch 输出包含 run_id 的机器可读结果。解析并报告 run_id——运行完成后需要用它进行问题排查。

自检

  • 所选配置目录确实包含 Antithesis docker-compose.yaml。
  • 构建、验证和运行步骤都指向同一配置。
  • 调用 snouty launch 前,snouty validate 已成功运行。
  • 运行时明确设置了 source、test-name、description 和 duration,并优先使用调用方提供的值而非默认值,同时包含调用方提供的其他参数。
  • 构建使用了 snouty doctor 报告的 compose CLI 和容器引擎。
  • 如果缺少 duration、ANTITHESIS_REPOSITORY 等必要信息,或配置位置不明确,则停止操作,而不是提交错误的运行。

评论

支持 Markdown