mcpField
C
circleci-smarter-testing

circleci-smarter-testing

github.com/circleci-public测试与质量748 次安装1 周前更新
代码仓库

关于 circleci-smarter-testing

用于在通过前置检查的 testsuite 中配置 CircleCI Smarter Testing 选项。它按需启用功能,并通过 CircleCI CLI doctor 命令检查配置。

主要功能

  1. 01运行 testsuite 前置检查
  2. 02启用测试影响分析
  3. 03将测试拆分到并行节点
  4. 04自动重试失败测试
  5. 05使用 doctor 验证配置

适用场景

  1. 01仅运行受代码变更影响的测试
  2. 02将测试分配到并行 CI 节点
  3. 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 以确认。

对于用户想启用的每项功能:

  1. 应用 doctor 的 next_steps 中的 options: 片段(test-impact-analysis: true、dynamic-test-splitting: true、max-auto-rerun: <0-10>)。
  2. 重新运行 doctor——修复它指出的所有问题(例如,原子不是文件时缺少 file-mapper,拆分时作业缺少 parallelism),并重复此步骤,直到检查通过。
  3. 对于测试影响分析,检查通过后,初始化一次数据——这是设置期间唯一一次合理使用非 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