开放代码测试
从https://github.com/terryso/claude-test.git
🎯 英语 | 中文
基于YAML的Playwright MCP测试框架CLI,适用于OpenCode。这是 官方CLI包 这使您可以在任何项目中轻松初始化、管理和更新复杂的测试框架。
🚀 最新动态革命性的会话持久性、多环境支持和智能HTML报告,测试覆盖率为84.95%。
安装
npm ci
npm pack
npm install -g xxxxxxxx.tgz快速开始
1.全局安装
npm ci
npm pack
npm install -g xxxxxxxx.tgz2.在项目中初始化
cd your-project
opencode-test init3.创建您的第一个测试
创建测试文件 test-cases/login.yml:
tags: [smoke, login]
steps:
- "Navigate to {{BASE_URL}}"
- "Fill username field with {{TEST_USERNAME}}"
- "Fill password field with {{TEST_PASSWORD}}"
- "Click login button"
- "Verify dashboard is displayed"4.设置环境变量
创建 .env.dev:
BASE_URL=https://example.com
TEST_USERNAME=testuser
TEST_PASSWORD=testpass123
GENERATE_REPORT=true
REPORT_STYLE=detailed5.运行测试
/run-yaml-test file:login.yml env:dev6.查看结果
/view-reports-index命令
opencode-test init
在当前项目目录中初始化测试框架。
opencode-test init [options]选项:
-f, --force-即使框架已经存在,也强制初始化--verbose-在初始化过程中显示详细输出
例子:
# Basic initialization
opencode-test init
# Force reinitialize with detailed output
opencode-test init --force --verboseopencode-test update
将框架更新到最新版本。
opencode-test update [options]选项:
--backup-更新前创建备份--dry-run-显示在不进行更改的情况下将更新的内容--verbose-显示详细输出
例子:
# Update with backup
opencode-test update --backup
# Preview changes without applying
opencode-test update --dry-run
# Detailed update process
opencode-test update --verboseopencode-test check
检查框架版本和状态。
opencode-test check [options]选项:
--remote-检查远程更新(未来功能)--fix-尝试自动修复完整性问题--verbose-显示详细输出
例子:
# Basic status check
opencode-test check
# Check and fix issues
opencode-test check --fix
# Detailed status report
opencode-test check --verbose框架功能
初始化后,您的项目将拥有一个完整的测试框架,其中包括:
- 🌍 多环境支持:支持开发/测试/生产环境
- 📚 可重用步骤库:模块化和可重复使用的测试组件
- 🗣️ 自然语言:用自然语言描述编写测试
- 🔧 环境变量:从.env文件自动加载配置
- 📊 智能报告:嵌入数据的漂亮HTML测试报告
- ⚡ 会话保持:通过持续的浏览器会话更快地执行测试
- 🚀 CLI管理:易于安装、更新和完整性检查
项目结构
运行后 opencode-test init,您的项目将包含:
.opencode/
├── commands/ # OpenCode commands
│ ├── run-yaml-test.md # Execute individual tests
│ ├── run-test-suite.md # Execute test suites
│ ├── validate-yaml-test.md # Validate test syntax
│ ├── validate-test-suite.md # Validate suite syntax
│ └── view-reports-index.md # View test reports
└── scripts/ # Framework automation scripts
├── yaml-test-processor.js # YAML test processing engine
├── create-report-data.js # Report data creation (Step 1)
├── gen-report.js # HTML report generation (Step 2)
├── scan-reports.js # Report indexing and organization
├── start-report-server.js # Local HTTP server for reports
└── suite-report-generator.js # Test suite report generator版本管理
CLI自动管理框架版本:
- 安装跟踪:记录安装框架的时间和方式
- 版本兼容性:确保CLI和框架版本兼容
- 自动更新:更新框架文件,同时保留自定义设置
- 完整性检查:验证所有必需的文件是否存在且有效
- 备份支持:更新前可选择创建备份
需求
- Node.js: >= 16.0.0
- 开源代码:与Playwright MCP集成
- NPM:用于全球安装
实际例子
示例1:电子商务测试套件
测试套件 (test-suites/e-commerce.yml):
name: E-commerce Smoke Tests
description: Critical functionality tests for e-commerce site
tags: [smoke, e-commerce]
test-cases:
- test-cases/login.yml
- test-cases/product-search.yml
- test-cases/add-to-cart.yml
- test-cases/checkout.yml单项试验 (test-cases/product-search.yml):
tags: [smoke, search]
steps:
- include: login
- "Click search field"
- "Type 'laptop' in search field"
- "Press Enter"
- "Verify search results contain 'laptop'"
- "Verify at least 5 products are displayed"步骤库 (steps/login.yml):
description: Standard login flow
steps:
- "Navigate to {{BASE_URL}}/login"
- "Fill username field with {{TEST_USERNAME}}"
- "Fill password field with {{TEST_PASSWORD}}"
- "Click login button"
- "Wait for dashboard to load"运行套件:
/run-test-suite suite:e-commerce.yml env:test示例2:基于标签的测试执行
# Run all smoke tests
/run-yaml-test tags:smoke env:dev
# Run tests that have both smoke AND login tags
/run-yaml-test tags:smoke,login env:dev
# Run tests that have smoke OR critical tags
/run-yaml-test tags:smoke|critical env:dev
# Run all tests in prod environment
/run-yaml-test env:prod示例3:环境配置
发展 (.env.dev):
BASE_URL=http://localhost:3000
TEST_USERNAME=dev@example.com
TEST_PASSWORD=devpass123
GENERATE_REPORT=true
REPORT_STYLE=overview
REPORT_PATH=reports/dev生产 (.env.prod):
BASE_URL=https://prod.example.com
TEST_USERNAME=prod@example.com
TEST_PASSWORD=secureprodpass
GENERATE_REPORT=true
REPORT_STYLE=detailed
REPORT_PATH=reports/prod常见问题
Q: 如何更新我的测试框架?
opencode-test update --backup --verbose这将创建一个备份,并在更新过程中显示详细的输出。
Q: 我的测试失败了,我该如何调试?
- 检查框架完整性:
opencode-test check --verbose - 验证测试语法:
/validate-yaml-test file:your-test.yml - 运行详细报告:设置
REPORT_STYLE=detailed在.env文件中 - 检查生成的HTML报告:
/view-reports-index
Q: 如何创建可重用的测试步骤?
在中创建YAML文件 steps/ 目录:
# steps/common-actions.yml
description: Common UI actions
steps:
- "Wait for page to load"
- "Take screenshot"
- "Scroll to top of page"然后在你的测试中包括:
# test-cases/my-test.yml
tags: [smoke]
steps:
- include: common-actions
- "Click submit button"Q: 我可以并行运行测试吗?
目前,测试通过会话优化按顺序运行。计划在未来的版本中并行执行。
Q: 我如何应对不同的环境?
- 创建单独
.env文件夹:.env.dev,.env.test,.env.prod - 在测试中使用环境变量:
{{BASE_URL}} - 运行时指定环境:
/run-yaml-test env:prod
Q: 如果我的框架文件损坏了怎么办?
# Check for issues
opencode-test check --fix
# Or force reinstall
opencode-test init --forceQ: 如何查看历史测试报告?
- 跑
/view-reports-index - 在环境选项卡(dev/test/prod)之间导航
- 点击任何报告卡查看详细结果
- 报告按时间戳组织,便于访问
故障排除
找不到框架
# Error: Framework not found in current directory
opencode-test init版本不匹配
# Check versions
opencode-test check --verbose
# Update framework
opencode-test update权限问题
# On macOS/Linux, you might need sudo for global install
sudo npm install -g opencode-test测试执行失败
- 验证测试语法:
/validate-yaml-test file:your-test.yml - 检查环境变量:确保所有
{{VARIABLES}}已定义 - 验证步骤库:确保所有
include:参考文献存在 - 检查剧作家MCP:确保OpenCode具有Playwright集成
开发和测试
该框架包括全面的测试和验证:
- CLI测试:完成命令验证和集成测试
- 与跨平台支持:在macOS和Linux上测试
- 版本管理:自动兼容性检查
- 错误处理:优雅的故障模式和恢复
贡献
我们欢迎捐款!在提交pull请求之前,请阅读我们的贡献指南。
CLI开发和架构
这个项目是 官方CLI工具 用于开放代码测试框架。它包含:
核心组件
- CLI入口点:
bin/opencode-test.js-基于Commander.js的CLI,有三个主要命令 - 命令:
lib/commands/-init、update和check命令的实现 - 公用事业:
lib/utils/-核心业务逻辑(文件管理、版本控制) - 模板:
lib/templates/-复制到用户项目的框架文件
开发脚本
npm test-运行Jest测试套件,代码覆盖率为84.95%npm run lint-ESLint验证npm run test:coverage-覆盖率分析,包括.opencode/scriptsnpm run sync-templates-同步框架模板npm run ci-完整的CI管道
测试
全面的测试覆盖范围包括:
- 所有核心模块的单元测试
- CLI命令的集成测试
- 错误处理和边缘情况验证
- CLI命令执行测试
演示和使用示例
对于 实际使用示例 和 集成演示,请访问配套项目:
📖 开放代码测试演示 -完整的使用示例、测试用例和集成指南
支持
对于问题和疑问:
- GitHub问题: 报告错误
- 全部文件: 全部文件
- 演示工程: 开放代码测试演示
- OpenCode文档: https://opencode.ai/docs
⭐ 明星历史

许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
______________________________________________________________________
由以下材料制成❤️ 由Anthropic团队为OpenCode社区开发。
