mcpField
C
clerk-testing

clerk-testing

github.com/clerk测试与质量8946.7k 次安装今天更新
代码仓库

关于 clerk-testing

clerk-testing 是面向 Playwright 和 Cypress 的 Clerk 身份验证测试技能,提供隔离会话与复用认证状态的指导。

主要功能

  1. 01Playwright 和 Cypress 配置指导
  2. 02每项测试使用独立认证上下文
  3. 03测试令牌配置
  4. 04通过 storageState 保存认证状态

适用场景

  1. 01配置 Clerk 端到端测试
  2. 02使用保存的认证状态加快重复测试

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/clerk/skills --skill clerk-testing

安装后在 Claude Code 中输入/clerk-testing确认已加载。

详细介绍

测试

决策树

框架文档
概览https://clerk.com/docs/guides/development/testing/overview
Playwrighthttps://clerk.com/docs/guides/development/testing/playwright/overview
Cypresshttps://clerk.com/docs/guides/development/testing/cypress/overview

心智模型

测试身份验证 = 隔离的会话状态。每项测试都需要全新的身份验证上下文。

  • clerkSetup() 初始化测试环境
  • setupClerkTestingToken() 绕过机器人检测
  • storageState 在测试之间持久保存身份验证状态,以提升速度

工作流

  1. 确认测试框架(Playwright 或 Cypress)
  2. 使用 WebFetch 获取上方决策树中对应的 URL
  3. 按照官方设置说明操作
  4. 仅使用开发实例密钥(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 - 添加测试前先安装 Clerk
  • clerk-nextjs-patterns - 正在测试的 Next.js 模式
  • 示例仓库

评论

支持 Markdown