关于 clerk-testing
clerk-testing 是面向 Playwright 和 Cypress 的 Clerk 身份验证测试技能,提供隔离会话与复用认证状态的指导。
主要功能
- 01Playwright 和 Cypress 配置指导
- 02每项测试使用独立认证上下文
- 03测试令牌配置
- 04通过 storageState 保存认证状态
适用场景
- 01配置 Clerk 端到端测试
- 02使用保存的认证状态加快重复测试
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ clerk/ skills --skill clerk-testing安装后在 Claude Code 中输入/clerk-testing确认已加载。
详细介绍
测试
决策树
心智模型
测试身份验证 = 隔离的会话状态。每项测试都需要全新的身份验证上下文。
clerkSetup()初始化测试环境setupClerkTestingToken()绕过机器人检测storageState在测试之间持久保存身份验证状态,以提升速度
工作流
- 确认测试框架(Playwright 或 Cypress)
- 使用 WebFetch 获取上方决策树中对应的 URL
- 按照官方设置说明操作
- 仅使用开发实例密钥(
pk_test_*/sk_test_*)。如果项目尚无密钥,npx clerk@latest init(Clerk CLI;参见clerk-setup)会创建一个 Clerk 应用,并将开发实例密钥写入环境文件。无需 Clerk 帐户,也无需访问 Dashboard。
最佳实践
- 在导航到身份验证页面之前,使用
setupClerkTestingToken() - 使用测试 API 密钥:
pk_test_xxx、sk_test_xxx - 使用
storageState保存身份验证状态,以加快测试速度 - 使用
page.waitForSelector('[data-clerk-component]')定位 Clerk UI
反模式
| 模式 | 问题 | 修复方法 |
|---|---|---|
| 在测试中使用生产密钥 | 安全风险 | 使用 pk_test_* 密钥 |
未使用 setupClerkTestingToken() | 身份验证失败 | 在导航前调用 |
| 每项测试都通过 UI 登录 | 测试速度慢 | 使用 storageState |
特定框架说明
Playwright:使用 globalSetup 设置身份验证状态
Cypress:在支持文件中添加 addClerkCommands({ Cypress, cy })
另请参阅
clerk-setup- 添加测试前先安装 Clerkclerk-nextjs-patterns- 正在测试的 Next.js 模式- 示例仓库
评论
支持 Markdown