chore: default OPENCLAW_TEST_TARGET to real_rpa; host UX acceptance
All checks were successful
技能自动化发布 / release (push) Successful in 9s

This commit is contained in:
2026-07-20 11:15:20 +08:00
parent 8101b5ac01
commit 4ed49495cf
12 changed files with 45 additions and 31 deletions

View File

@@ -1,6 +1,6 @@
# 适配器标准:真实/仿真 × API/RPA 四档模式
> 凡是"连接三方系统"ERP、CRM、SaaS、银行等的 skill都应采用本文的 **adapter 四档模式**。这样同一套业务逻辑可在不同档位间切换:开发用 mock、半集成用 simulator、上线用真实互不影响
> 凡是"连接三方系统"ERP、CRM、SaaS、银行等的 skill都应采用本文的 **adapter 四档模式**。同一套业务逻辑可在不同档位间切换**四档都保留**
## 为什么要分档
@@ -15,17 +15,17 @@
| 档位 | 含义 | 默认策略 |
|------|------|----------|
| **`mock`** | 纯内存或 fixture**默认单测/CI** | 模板 `.env.example` 默认 `OPENCLAW_TEST_TARGET=mock` |
| **`simulator_rpa`** | 仿真站点或桌面仿真,可半集成 | 开发联调可选 |
| **`real_api`** | 真实 API | 生产 / 集成测试显式设 `OPENCLAW_TEST_TARGET=real_api` |
| **`real_rpa`** | 真实浏览器/真实系统 | 生产 / 集成测试显式设 `OPENCLAW_TEST_TARGET=real_rpa` |
| **`mock`** | 纯内存或 fixture离线 | **单测 / CI 必过**mock 不通不要往下走 |
| **`simulator_rpa`** | 仿真站点或桌面仿真,可半集成 | 按业务场景选用 |
| **`real_api`** | 真实 API | 按业务场景选用(有官方接口时) |
| **`real_rpa`** | 真实浏览器/真实系统 | **模板 `.env.example` 默认**;业务自测与交活用此档 |
- **mock**:纯离线、不联网,给单测 / CI / 开发自测**保证可重复**。
- **simulator_rpa**:操作仿真平台(如 `sandbox.jc2009.com`跑端到端流程但不碰生产
- **real_api**:有官方接口时**首选**(最稳、最快、最易维护)
- **real_rpa**没有 API 只能操作生产界面,**风险最高、放最后**
- **mock**:纯离线、不联网,给单测 / CI**保证可重复**。**mock 通 ≠ 开发完成**。
- **simulator_rpa**:操作仿真平台(如 `sandbox.jc2009.com`按场景选用
- **real_api**:有官方接口时按场景选用
- **real_rpa**真实浏览器路径;模板默认,须真实跑通后再交活
> 推荐优先级:**real_api > simulator_rpa > real_rpa**mock 永远保留做 CI
> **口径**:业务配置默认 `real_rpa`;单测/CI 用 `mock`。不得只 mock 通就交活;须 release 到匠厂宿主验收(含用户体验)
配置读取见 `CONFIG.md`**bootstrap 之后业务代码只通过 `config.get*()``OPENCLAW_TEST_TARGET` 等项**(进程 env > 用户 `.env` > `.env.example`)。
@@ -72,7 +72,7 @@ scripts/service/
from jiangchang_skill_core import config
def get_adapter():
target = (config.get("OPENCLAW_TEST_TARGET") or "mock").lower()
target = (config.get("OPENCLAW_TEST_TARGET") or "real_rpa").lower()
if target in ("unit", "mock"):
return MockAdapter()
if target == "real_api":