Source: https://aiprimetech.io/zh/claude-code/qa-automation/ [首页](/zh/) › [Claude Code](/claude-code/zh/) › QA 自动化 [概览](/claude-code/zh/)[安装](/claude-code/zh/install/)[CLI 参考文档](/zh/claude-code/cli/)[定价与限制](/claude-code/zh/pricing/)[Agent SDK](/zh/claude-code/sdk/)[技能与插件](/zh/claude-code/skills/)[GitHub](/zh/claude-code/github/)[网页、桌面与 IDE](/zh/claude-code/web-and-desktop/)[模型](/zh/claude-code/models/)[错误](/zh/claude-code/errors/)[是否开源?](/zh/claude-code/open-source/)[教程](/claude-code/zh/tutorial/)[学生指南](/zh/claude-code/for-students/)[QA 自动化](/zh/claude-code/qa-automation/)[与 Cursor 对比](/zh/claude-code/vs-cursor/)[与 Codex 和 OpenCode 对比](/zh/claude-code/vs-codex/)[子智能体](/zh/claude-code/subagents/)[钩子](/zh/claude-code/hooks/)[MCP](/zh/claude-code/mcp/)[生态系统](/zh/claude-code/ecosystem/)[VS Code](/zh/claude-code/vscode/)[OpenRouter](/zh/claude-code/openrouter/)[速率限制](/zh/claude-code/rate-limits/)[中文指南](/claude-code/zh/) 最后更新:2026 年 11 月 # 如何使用 Claude Code 实现 QA 自动化 Claude Code 在 QA 工作中表现尤为出色,因为 QA 是一个它可以自行完成闭环的流程:编写测试、运行测试、读取失败信息、修复测试或代码,然后再次运行。本指南介绍实用配置——从生成第一个测试文件,到在每个拉取请求上进行无头运行。 ## TLDR - 在 CLAUDE.md 中提供测试运行命令,它就能编写、运行和修复测试,无需另行告知操作方法。 - 最佳输入:规格说明、包含复现步骤的缺陷报告,或可供仿照的现有测试文件。 - 无头模式: claude -p 替换为 --allowedTools 在 CI 中使用;GitHub Action 会在拉取请求上执行相同操作。 - 端到端:Playwright MCP 服务器让它能够操控真实浏览器;请保持这些会话简短。 ## Claude Code 在 QA 工作流中能做什么 - 按照项目现有的风格和框架,为模块生成单元测试。 - 将缺陷报告转化为失败的回归测试,然后修复代码,直到测试通过。 - 为现有测试套件补充缺失的边界情况(空输入、Unicode、超时、并发)。 - 编写 Playwright 或 Cypress 端到端测试,并借助浏览器 MCP 服务器,在运行中的应用上执行这些测试。 - 排查失败的 CI 运行:读取日志、查找原因、提出或应用修复。 - 审查拉取请求中未经测试的路径,并发布发现的问题。 它无法决定哪些事情重要。它很乐意用没有任何有用断言的测试,将行覆盖率提升到 100%。输出质量取决于指令质量,因此下方的配置从记忆文件开始,而不是从提示词开始。 ## 配置:告诉它如何运行测试 ``` # CLAUDE.md ## Testing - Unit tests: `npm test` (vitest). Files live next to the source as `*.test.ts`. - E2E: `npx playwright test`, specs in `e2e/`. Needs the dev server: `npm run dev`. - Always run the relevant test file after editing it. Do not mark a test `.skip` to make the suite pass. - Prefer table-driven tests; one behaviour per `it()`; no snapshot tests for logic. ``` 这段内容决定了智能体是靠猜测行事,还是像读过贡献指南的同事一样工作。加入你希望采用的断言风格,以及绝不希望它做的事情(模拟数据库、跳过测试、修改测试数据以匹配错误输出)。 ## 根据规格说明或缺陷报告生成测试 ``` > Read src/billing/prorate.ts. Write vitest tests covering the documented behaviour in docs/billing.md, including month boundaries, leap years and a zero-day period. Run them; if any fail, tell me whether the code or the doc is wrong before changing code. ``` ``` > Bug #412: uploading a 0-byte file returns 500 instead of 400. Write a failing test that reproduces it, then fix the handler so the test passes. Do not touch other tests. ``` 每个提示词的最后一句话都很重要。“告诉我是代码错了还是文档错了”,可以防止它悄悄改变行为,以匹配刚刚自行编写的测试;“不要改动其他测试”,可以避免一种常见失败模式:为了让测试通过而修改无关的断言。 ## 运行与修复循环 要求它在编写测试后运行测试。它会读取失败输出、进行调整并重新运行——通常需要两三次迭代。留意权限提示:允许 Bash(npm test*) 和 Bash(npx playwright test*) 一次,并使用 /permissions 以免循环被打断,同时让破坏性命令保持每次询问。如果它在同一个测试上循环超过四五次,就停止它;该测试很可能在断言错误的内容,需要人工检查。 ## 在 CI 中以无头模式运行 ``` # generate regression tests for whatever changed, non-interactively git diff --name-only origin/main...HEAD | grep -E 'src/.*\.ts$' > changed.txt claude -p "For each file in changed.txt, add or extend tests for the changed behaviour. Run them." \ --allowedTools "Read,Edit,Write,Bash(npm test*),Bash(git diff*)" \ --max-turns 25 --output-format json > claude-qa.json ``` 打印模式不会提出任何问题,因此它可能执行的所有操作都必须预先通过以下方式授权: --allowedTools,以及 --max-turns 限制循环次数。将 ANTHROPIC_BASE_URL=https://aiprimetech.io 和网关密钥设为 CI 密钥变量,运行费用就会从你的网关余额或无限量套餐中扣除。将结果提交到分支,让人工审查——不要自动合并生成的测试。 ## 在每个拉取请求上运行:GitHub Action 当有人发表评论时,Claude Code GitHub Action 会运行相同的循环 @claude 在拉取请求中触发,或在创建时自动触发。在工作流中加入面向 QA 的指令——“检查此 PR 中未测试的分支,并为其添加测试”——即可在审阅者查看之前,对每个 PR 进行初步检查。GitHub 指南介绍了应用安装、工作流文件和费用。 ## 使用 Playwright 进行端到端测试 有两种方式。不使用浏览器时,它会根据页面结构和你的描述编写 Playwright 测试用例,再由你运行。连接 Playwright MCP 服务器后(/mcp),它可以打开应用、点击并走完整个流程、读取 DOM,然后根据实际看到的内容编写测试——选择器会可靠得多,但会话也会更长。每个浏览器会话只处理一个流程,并在会话之间 /clear ;截图和 DOM 转储体积很大,而且每一轮都会重新发送。 ## 降低 QA 运行成本 - 使用 Sonnet 档位;生成测试很少需要 Opus。Haiku 档位足以用于日志问题分类。 - 每次只让它处理一个模块或一个缺陷。“为整个仓库添加测试”是成本最高的提示。 - /compact 在每个测试文件落地后执行;它读取过的失败日志已不再有用。 - 在 CI 中,使用以下选项设置上限 --max-turns ,并且只针对已更改的文件运行。 - 对于每天运行这些任务的团队,固定费率的不限量套餐可以彻底消除按 token 计费的顾虑。 | 计划 | 时长 | 价格 | 1 小时不限量 | 1 小时 | $1 | 24 小时不限量 | 24 小时 | $10 | 1 周不限量 | 1 周 | $49 | 15 天不限量 | 15 天 | $89 [所有不限量套餐 →](/zh/plans/) ## 先免费试用 新账户可获得 $5 免费 API 额度 使用优惠码 CLAUDECODE — 足够用 Sonnet 运行 Claude Code 一晚,之后可获得面值 7.69231 倍的额度。 ``` export ANTHROPIC_BASE_URL=https://aiprimetech.io export ANTHROPIC_API_KEY=your_key ``` [使用优惠码 CLAUDECODE 创建账户](/register?promo=CLAUDECODE) ## 常见问题 Claude Code 能编写单元测试吗? 可以——如果 CLAUDE.md 说明了项目现有的框架和风格,它就会按这些要求编写。让它在编写后运行测试,以便自行修正错误。Claude Code 能运行 Playwright 测试吗? 可以。它可以独立编写测试用例,连接 Playwright MCP 服务器后,还能操控真实浏览器来构建和验证测试。Claude Code 适合 QA 自动化吗? 在生成测试、完成编写—运行—修复闭环,以及对 CI 失败进行分类排查方面,它非常适合。它不能替你决定哪些内容需要测试,而且生成的测试在合并前仍需人工审查。如何在 CI 中运行 Claude Code 来进行测试? 使用 claude -p,并配置 --allowedTools 和 --max-turns,将网关或 Anthropic 凭据作为密钥保存,再将输出提交到分支供审查。GitHub Action 为拉取请求封装了同样的流程。 ## 通过网关运行 Claude Code 相同的模型,两个环境变量,面值 7.69231 倍的额度,或固定费率不限量方案。 新账户:使用优惠码 CLAUDECODE 可获得 $5 免费 API 额度。[获取 API 密钥](/register?promo=CLAUDECODE) [查看不限量方案](/zh/plans/) AI Prime Tech 是独立的 API 网关,与 Anthropic 无关联,也未获得其认可或赞助。“Claude”和“Claude Code”是 Anthropic 的商标。此处介绍的 Claude Code 功能以撰写时 Anthropic 的公开文档为依据,且经常发生变化;本页面的价格和模型列表读取自此网关的实时设置。 ## 更多 Claude Code 指南 [Claude Code:完整指南](/claude-code/zh/)[如何安装 Claude Code](/claude-code/zh/install/)[Claude Code CLI 文档:命令与参数](/zh/claude-code/cli/)[Claude Code 定价与限制详解](/claude-code/zh/pricing/)[Claude Code SDK,现已更名为 Claude Agent SDK](/zh/claude-code/sdk/)[Claude Code 技能与插件](/zh/claude-code/skills/)[在 GitHub 中使用 Claude Code:App、Action 和 @claude](/zh/claude-code/github/)[Claude Code 有网页界面吗?网页、桌面与 IDE 版本详解](/zh/claude-code/web-and-desktop/)[Claude Code 使用哪个模型,以及如何更改](/zh/claude-code/models/)[Claude Code 错误及修复方法](/zh/claude-code/errors/)[Claude Code 开源吗?](/zh/claude-code/open-source/)[Claude Code 教程:您的首次实际会话](/claude-code/zh/tutorial/)[学生使用 Claude:Claude Code、API,以及教育优惠实际提供什么](/zh/claude-code/for-students/)[Claude Code 与 Cursor 对比:如何选择、何时使用,以及如何同时使用两者](/zh/claude-code/vs-cursor/)[Claude Code、Codex 与 OpenCode:终端智能体对比](/zh/claude-code/vs-codex/)[Claude Code 子智能体:工作原理、定义方法与智能体团队](/zh/claude-code/subagents/)[Claude Code 钩子:以确定性方式控制智能体的行为](/zh/claude-code/hooks/)[Claude Code MCP:连接服务器、作用域、远程 MCP 与实际示例](/zh/claude-code/mcp/)[Claude Code 生态系统:路由器、框架、插件及收录它们的清单](/zh/claude-code/ecosystem/)[在 VS Code 中使用 Claude Code:扩展、终端方式与常见错误](/zh/claude-code/vscode/)[如何在 Claude Code 中使用 OpenRouter(以及何时不宜使用)](/zh/claude-code/openrouter/)[Claude 速率限制错误:“API error: rate limit reached”的含义与解决方法](/zh/claude-code/rate-limits/)[Claude Code 怎么用:从安装到日常使用](/claude-code/zh/)