关于 antithesis-launch
用于在仓库中配置并提交 Antithesis 测试运行的技能。它检查配置、构建镜像并按顺序验证后启动运行,遇到必要信息缺失或验证失败时会停止。
主要功能
- 01检查 snouty 版本与容器环境
- 02定位 Antithesis 配置目录
- 03构建容器镜像
- 04验证配置后启动运行
- 05报告运行 ID 和命令
适用场景
- 01为仓库启动 Antithesis 测试
- 02验证测试配置并提交运行
- 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 运行:
docker compose build(如果用户要求使用预构建镜像,则跳过)snouty validate- 如果验证失败,则停止并报告错误
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