DeepSeek Harness Desktop测试体系实战:单元测试、插件沙箱E2E与桌面E2E门禁清单

发布时间:2026/10/1 8:10:03
DeepSeek Harness Desktop测试体系实战:单元测试、插件沙箱E2E与桌面E2E门禁清单 DeepSeek Harness Desktop测试体系实战单元测试、插件沙箱E2E与桌面E2E门禁清单【免费下载链接】deepseek-harness-desktopDeepSeek Harness Tauri 桌面版 | Only 5mb installer, zero environment setup, preset plugins, Windows / macOS / Linux.项目地址: https://gitcode.com/gh_mirrors/dee/deepseek-harness-desktopDeepSeek Harness Desktop是一款基于 Tauri 的 DeepSeek Harnessdsh桌面应用5MB 安装包、零环境配置支持 Windows / macOS / Linux。要保障这样一款壳层 内嵌 Web 服务 插件架构的产品质量单靠人工测试远远不够。本文带你拆解它的测试体系单元测试、插件沙箱 E2E、桌面 E2E 三条车道如何分工协作以及让每次发版都可信的 CI 门禁清单。三条测试车道总览各管一段互不越界项目的全部测试统一由 Vitest 驱动通过 vitest.config.ts 中的projects拆成三条独立车道Playwright 与 WebdriverIO 只作为驱动库引入不引入额外的测试 Runner车道用例位置被测对象驱动L1 单元测试packages/**、test/**/*.test.ts、src/**纯函数、路由 Handler、注册表契约VitestL2 宿主 E2Etest/e2e/plugins/*.e2e.ts真实dsh web进程的 HTTP 响应Node 环境直接断言C 浏览器层同上plugin 车道内真实 Chromium 中的客户端 DOM 行为Playwright 库 APIL3 桌面 E2Etest/e2e/desktop/*.e2e.ts真实 Tauri 窗口窗口句柄、几何尺寸、IPC 往返WebdriverIO 分层的核心判据很简单断言对象必须是该层级的原生产物。例如 iframe 内部的业务 DOM 属于 C 浏览器层不允许写进 L3 桌面车道——否则它会退化成只在 Windows 上跑的 DOM 测试。单元测试L1秒级反馈的快速车道单元测试的配置见 vitest.unit.config.ts它收集两类用例内置插件测试与源码同目录、同名*.test.ts例如 packages/dsh-tauri/src/client/apply.test.ts壳层用例跨包编排级的 test/backup.test.ts、test/zoom.test.ts 等。几个关键约定值得注意无全局 API配置未启用globals每个测试文件必须显式import { describe, it, expect, vi } from vitest命名契约*.test.ts是单元、*.e2e.ts是 E2E严格区分test/archive/是历史归档任何车道都不收隔离资源竞争maxWorkers: 4限制并发——worktree 插件会创建真实 git 仓库全量并行时偶发超时 flake限流后单独复跑稳定。运行命令node node_modules/vitest/vitest.mjs run --project unit # 全量单测 node node_modules/vitest/vitest.mjs run --project unit 文件 # 单文件位置参数插件沙箱 E2EL2 C一个共享宿主驱动全部插件这条车道最巧妙的设计是沙箱化宿主。test/e2e/setup-plugin.ts 作为globalSetup整条车道只执行一次完成九步编排检查构建产物 → 解析 dsh 入口 → 创建 Scratch DSH_HOME → 脚手架构造 Profile → 挂载插件 → 校验挂载注册 → 启动 dsh web 进程 → token 换取会话 Cookie → 下发配置给用例关键机制包括环境隔离DSH_E2E_HOME指向tmp/dsh-e2e-suite-timestamp的独占目录严禁触碰用户真实~/.dshTeardown 时自动清理设DSH_E2E_KEEP_HOME1可保留现场共享宿主默认挂载dsh-tauri-pet附加挂载全部 9 个产品可见插件各批次路由用例复用同一个宿主避免每批多起一个进程串行执行fileParallelism: false保证单实例共享宿主串行断言鉴权真实严格走GET /?token...换Set-Cookie的 303 通道与桌面端生产鉴权路径完全一致C 浏览器层用例直接chromium.launch()通过同源 Frame 嵌入 可重入弹窗闸OnboardingModal会让#root变inert不过闸点击会被吞噬完成真实 DOM 断言。调试面板里显示的dsh web: http://127.0.0.1:3082连接状态与 E2E 沙箱宿主的运行形态如出一辙——区别在于沙箱用--port 0随机端口 全新临时目录天然隔离。运行前先构建插件产物pnpm build:plugins node node_modules/vitest/vitest.mjs run --project plugin桌面 E2EL3真实窗口、真实下载、真实 IPCL3 车道只验证一件事壳层是否把 dsh 正确装配、启动并嵌入。当前共 2 个文件、2 条用例test/e2e/desktop/boot.e2e.ts启动冒烟显式冷装配 → 真实联网下载 Node 与内核 → 内核启动 → 页面无报错test/e2e/desktop/pet.e2e.ts桌宠尺寸边界范围内接受 / 越界拒绝且不改状态。驱动链路为Vitest → WebdriverIO (Standalone) → wdio/tauri-service (embedded) → 应用内嵌 W3C WebDriver Server不引入wdio/cli。隔离策略同样严格重定向USERPROFILE/HOME到E2E_HOME/home、WebView2 数据目录独占、E2E 模式自动改用.store.test.dat、下载缓存可用coldCache: true切到独占目录以测真实下载。pnpm build:debug # 产物缺失即 Fail不在测试中重新构建 node node_modules/vitest/vitest.mjs run --project desktop注意两个坑点单文件运行必须用位置参数-- file会触发全车道误执行不要在前景终端跑窗口被抢焦点会导致激活断言假失败。CI 门禁清单从 PR 到发版车道平台门禁关键项unitubuntu-latesttypechecklint 全量单测退出码 0plugins-e2eubuntu-latest构建插件与 CLI 环境后跑 plugin 车道desktop-e2ewindows-latest构建前端与 Debug 二进制后跑 desktop 车道PR 必过rust-test多平台cargo test --all-features --locked除了 CI 四条线测试质量还受一套评审协议约束见 docs/specs/testing.md核心准入门禁有 5 条✅ 独立连续运行≥ 5 次无 Flake禁用重跑掩盖偶发失败✅ 失败信息可精确定位到用例 - 步骤 - 期望 vs 实际✅it()标题即契约且与内部断言一致✅--sequence.shuffle乱序运行完全通过顺序无关✅ 环境完全隔离零真实用户数据写入。质量红线同样清晰不写假绿断言expect(x).toBe(x)、吞异常、空值掩盖都是 Blocker、不静默跳过环境不满足直接 Fail严禁skipIf掩盖、不 Mock 被测对象本身、核心用例必须做变异验证——故意破坏实现确认测试确实变红。5 步快速上手pnpm install pnpm build:plugins # 1. 构建插件产物 node node_modules/vitest/vitest.mjs run --project unit # 2. 跑单元测试 node node_modules/vitest/vitest.mjs run --project plugin # 3. 跑插件沙箱 E2E pnpm build:debug # 4. 编译桌面 Debug 二进制 node node_modules/vitest/vitest.mjs run --project desktop # 5. 跑桌面 E2EWindows小结DeepSeek Harness Desktop 的测试体系可以用一句话概括一条真实链路三层纵深五道门禁。单元测试守住函数级契约插件沙箱 E2E 用隔离的DSH_HOME验证真实服务的 HTTP 字节与 DOM 行为桌面 E2E 用真实 Tauri 窗口验证装得上、跑得起来、嵌得进去最后由 CI 门禁与5 次无 Flake标准兜底。分层判据清晰、隔离策略彻底、假绿断言零容忍——这正是小团队也能交付高质量桌面产品的底气所在。【免费下载链接】deepseek-harness-desktopDeepSeek Harness Tauri 桌面版 | Only 5mb installer, zero environment setup, preset plugins, Windows / macOS / Linux.项目地址: https://gitcode.com/gh_mirrors/dee/deepseek-harness-desktop创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考