关于 circleci-smarter-testing
用于在通过前置检查的 testsuite 中配置 CircleCI Smarter Testing 选项。它按需启用功能,并通过 CircleCI CLI doctor 命令检查配置。
主要功能
- 01运行 testsuite 前置检查
- 02启用测试影响分析
- 03将测试拆分到并行节点
- 04自动重试失败测试
- 05使用 doctor 验证配置
适用场景
- 01仅运行受代码变更影响的测试
- 02将测试分配到并行 CI 节点
- 03在同一步骤中重试失败测试
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ circleci-public/ skills --skill circleci-smarter-testing安装后在 Claude Code 中输入/circleci-smarter-testing确认已加载。
详细介绍
CircleCI Smarter Testing
这些功能可能需要付费计划,或仍处于 Beta 阶段——向用户承诺之前,请确认当前的可用性和定价。
基于 testsuite 构建。询问用户想启用其中哪些功能(不要默认全部启用):
- 测试影响分析——仅运行受更改影响的测试。
- 动态测试拆分——将测试均匀分配到并行节点。
- 自动重跑失败测试——在同一步骤中自动重试失败的测试。
从以下步骤开始:
circleci testsuite doctor "<suite name>" --json
如果 .circleci/test-suites.yml 不存在,或 checks 未全部通过,请停止,并引导用户先使用 circleci-testsuite——绝不能对未通过 doctor 检查的套件启用这些选项。
如果尚未设置,请在用户启用的功能旁边设置 options: store-test-results: true——这是单独建议的设置,某些功能需要它才能正常工作。它会取代任何经典的 store_test_results 作业步骤。重新运行 doctor 以确认。
对于用户想启用的每项功能:
- 应用 doctor 的
next_steps中的options:片段(test-impact-analysis: true、dynamic-test-splitting: true、max-auto-rerun: <0-10>)。 - 重新运行 doctor——修复它指出的所有问题(例如,原子不是文件时缺少
file-mapper,拆分时作业缺少parallelism),并重复此步骤,直到检查通过。 - 对于测试影响分析,检查通过后,初始化一次数据——这是设置期间唯一一次合理使用非 doctor
testsuite run命令的情况:circleci testsuite run "<suite name>" --analyze-tests=impacted
启用并初始化测试影响分析后,建议用户将日常本地测试命令(npm test、pytest、go test 等)替换为 circleci testsuite run "<suite name>" --local——它会使用本地存储的影响数据,因此本地运行时只会选择受未提交更改影响的测试,与 CI 中的行为相同。
防护措施
- 只启用用户明确要求的功能——不要擅自启用测试影响分析、动态测试拆分或自动重跑。
circleci testsuite doctor "<suite name>"是设置期间唯一会执行测试的命令,但上述一次性初始化步骤和--local开发循环建议除外。- 不要在
test-suites.yml中放置机密信息——请使用 contexts/env vars。不要将本地影响数据提交到.circleci/。 - CLI 安装或身份验证问题交由
circleci-cli处理;其他配置、缓存或工作区问题交由circleci-config处理;doctor 检查通过的配置仍出现 CI 失败时,交由circleci-builds处理。
输出要求
删除设置期间创建的无关文件。报告已启用的功能、已更改的文件、最终 doctor 输出,以及任何受阻的前置条件。
评论
支持 Markdown