--- name: browser-testing description: 定义了使用浏览器开发者工具进行端到端(E2E)测试的工作流,测试用例以 Markdown 文件形式记录。 author: github/cafe3310 license: Apache-2.0 --- # 技能: 基于浏览器的端到端测试 ## 1. 概述 本技能定义了一套端到端(E2E)测试流程,该流程不依赖传统的单元测试框架,而是通过 `chrome-dev-tools` 或类似的浏览器工具进行手动或半自动化的界面测试。 所有测试用例都以结构化的 Markdown 文件形式进行记录和管理。 ## 2. 何时使用 - 当需要为项目中的某个 Space 应用创建或执行测试时。 - 当需要验证一个功能在本地和部署后是否都按预期工作时。 - 当需要记录测试过程和结果以供回顾时。 ## 3. 测试流程 1. **本地测试优先**: 在本地环境中完成开发后,首先在本地运行应用,并根据测试用例执行端到端测试。 2. **部署测试**: 本地测试全部通过后,将代码推送到 `main` 分支,触发 Hugging Face Spaces 的自动部署。 3. **验证部署**: 在部署后的 Space 页面上,重复执行测试用例,确保线上功能与本地一致。 ## 4. 测试用例规范 ### A) 存放位置 每个 Space 应用的测试用例都存放在其各自的 `tests/` 目录下。例如:`some-proj/tests/`。 ### B) 文件结构 每个测试用例都是一个独立的 Markdown 文件,其内容结构由模板 `templates/test-case.md.template` 定义。 - **文件头**: - **创建时间**: 测试用例创建时的时间戳。 - **Commit Hash**: 创建时对应的 Git Commit 哈希值。 - **Commit Message**: 创建时对应的 Git Commit 消息。 - **核心定义**: - **测试名称**: 对测试用例的简短描述。 - **测试目的**: 详细说明此测试用例要验证的功能或修复的问题。 - **环境信息**: - **本地运行和部署方式**: 清晰说明如何在本地启动应用以及如何触发部署。 - **执行与结果**: - **测试步骤**: 一系列清晰、可复现的操作步骤。 - **预期结果**: 描述在执行完测试步骤后,系统应该达到的状态。 - **通过时的实际结果**: 当测试成功通过后,在此处记录观察到的实际结果,包括: - **截图路径**: 自动截取的关键页面截图的存储路径。 - **验证状态**: 截图内容与预期结果描述比对后的验证结果(通过/不通过)。 - **口述标准**: 用户口述的预期结果视觉描述。 这些记录作为测试通过的凭证。 ### C) 创建测试用例 1. 使用 `date +'%Y-%m-%d-%H-%M'` 获取当前时间戳。 2. 使用 `git log -1 --pretty=%H%n%s` 获取最新的 Commit 信息。 3. 复制 `browser-testing/templates/test-case.md.template` 模板内容。 4. 填充模板中的占位符,并编写详细的测试步骤和预期结果。 5. 将新创建的测试用例文件保存到对应 Space 的 `tests/` 目录下。 6. 为每个测试用例创建一个同名的子目录,用于存放截图等测试产物。例如:`some-proj/tests/YYYY-MM-DD-HH-mm-测试名称/`。 ## 5. 模板资源 - `templates/test-case.md.template`: 用于创建新测试用例的 Markdown 模板。