新闻详情

新闻详情

首页 / 资讯中心 / 详情

dots测试与发布实践:单元测试、pin守护测试与pre-push钩子门禁完整清单

发布时间:2026/10/2 13:03:28来源:尧图网络
dots测试与发布实践:单元测试、pin守护测试与pre-push钩子门禁完整清单
dots测试与发布实践单元测试、pin守护测试与pre-push钩子门禁完整清单【免费下载链接】dotsOpen-source dots for the web: an AI agent with its own browser, one that does not get blocked.项目地址: https://gitcode.com/gh_mirrors/dots140/dotsdots 是一个把 AI agent 装进真实 Firefox 浏览器的开源项目MIT 协议它本身只有 3 个源码文件却配了一整套严肃的测试与发布门禁4 个 pytest 用例、一条“精确 pin 的依赖守护测试”、一个 pre-push 钩子门禁外加 CI 矩阵复核。对新手来说这套结构是理解“如何用最小代码量守住发布质量”的绝佳样本。 一、测试基座两个 marker 划清边界pytest 的配置直接写在 pyproject.toml 里用两个 marker 把用例分成两类Marker含义unit纯逻辑——无 I/O、无网络、无子进程、无浏览器integration在子进程里跑真实命令——依然不碰网络和浏览器配合--strict-markers保证没人能偷偷漏打标pythonpath [src]让测试直接指向 src/dots 源码包。 二、4 个测试用例各守一道门全部用例集中在 tests/test_entry.py一个文件讲完整个守护逻辑参数前置正确unittest_the_group_is_called_with_ui_in_front 用 monkeypatch 替换底层命令组断言dots --port 9000 --headed最终变成ui --port 9000 --headed且程序名仍是dots。为什么必须经过命令“组”而不是直接调ui因为.env里的密钥是在组那一层读取的绕过去就会悄悄失效。help 即接口integrationtest_help_is_the_interface_help 在干净环境里真跑python -m dots --help确认--openrouter-key、--seed、--proxy等选项都在——用户看到的帮助页就是产品的真实接口。没密钥就拒启动integrationtest_without_a_key_it_refuses_before_starting_anything 验证无 key 时程序立刻报错而不是先起浏览器再尴尬失败。pin 守护unit见下一节。 三、pin 守护测试依赖悄悄换货怎么办pyproject.toml 里有句狠话“整个产品就是这一行”——invisible-playwright-mcp0.70.2。浏览器循环、页面、命令组全部来自这个包而它提供的命令组不是公开 API所以依赖必须用精确 pin 而非下限版本只能人为升级绝不让 resolver 顺手拉新。守护它的就是 test_the_installed_package_is_the_pinned_one读出 pyproject 里 pin 的版本号再查环境中实际安装的版本两者不一致立刻红灯。注释还点出另一种偷渡方式——把兄弟目录的 editable 安装装进来会让前面所有测试“测错对象”而这个用例能直接识破。升级流程一句话改 pin → 跑 tests/test_entry.py → 全绿才合入。 四、pre-push 钩子门禁薄脚本厚策略.githooks/pre-push 只有 55 行且策略不写在钩子里脚本唯一职责是找到 Python 解释器然后exec交给invisible_core.hooks随 pin 的包一起进来执行检查stdingit 推送的 refs原样透传本仓库要开哪些门禁声明在 pyproject.toml 的[tool.invisible.hooks]pytest true、english true英文行文检查、identity true身份信息一致性pin false且release_tags []——因为本仓库不发布 release tag找不到 Python 或导入失败时钩子拒绝推送并给出可读的报错而不是静默放行——“不能检查就不能推送”。安装一次即可忘记也没关系git config core.hooksPath .githooks唯一逃生门是git push --no-verify只给“已知坏掉的 WIP 分支”用发布分支禁用。另外 .gitattributes 强制.githooks/**保持 LF专治 Windows 上 CRLF 导致的/bin/sh^M: bad interpreter。️ 五、第二道防线CI 矩阵与 gate 汇总.github/workflows/tests.yml 在每次 push / PR 时再跑一遍Job作用english/claims校验文档行文与 README 的承诺不夸大unit矩阵Ubuntu × Python 3.11/3.12/3.13 Windows × 3.12与requires-python 3.11的承诺对齐见 矩阵定义gate依赖全部 job且只接受 success任何 skipped 都算失败gate 汇总细节值得抄作业pytest 后还会解析报告通过的用例少于 4 个直接判负——防止“筛选条件写错导致 0 个用例运行”被误当成全绿拒自我 deselection。 六、测试与发布完整清单层级检查项位置本地开发2 个 unit 2 个 integration 用例tests/test_entry.py本地开发依赖 pin 版本一致性pyproject.tomlpre-push 钩子pytest / english / identity.githooks/pre-push 钩子开关CI英文行文、claims、双 OS 多版本矩阵.github/workflows/tests.ymlCIgate 汇总skip 即失败gate job发布策略精确 pin 手动升级无 release tagpyproject.toml 七、三步在本地跑起来git clone https://gitcode.com/gh_mirrors/dots140/dots cd dots pip install -e .[dev] # dev 依赖仅 pytest7 pytest tests/ -v # 预期4 passed git config core.hooksPath .githooks # 装上门禁小结dots 给出的方法论非常清晰测试不追求多而追求每个用例都有明确要守的东西参数前置、help 即接口、缺 key 即拒、pin 一致钩子脚本保持薄策略下沉为可共享的包本地门禁 CI 矩阵双保险连“0 个用例运行”这种隐性失败都防住了。小项目完全可以照单复制这套骨架。【免费下载链接】dotsOpen-source dots for the web: an AI agent with its own browser, one that does not get blocked.项目地址: https://gitcode.com/gh_mirrors/dots140/dots创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

OASIS文件格式原理与IC版图工程实践指南 2026/10/2 13:54:36

OASIS文件格式原理与IC版图工程实践指南

1. 为什么OASIS不是“鼠鼠文件格式”,而是IC版图工程师的生存刚需刚入行那会儿,我第一次收到流片厂发来的GDSII压缩包,解压后发现里面是几十GB的.oas文件,打开一看全是乱码和十六进制字符,同事随口一句“哦&#xff0c…

阅读更多 →
MCP协议实战:用Model Context Protocol打造企业级AI Agent工具链 2026/10/2 13:54:36

MCP协议实战:用Model Context Protocol打造企业级AI Agent工具链

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
数据安全治理1130框架落地实践:从资产盘点、分级分类到零信任闭环 2026/10/2 13:54:30

数据安全治理1130框架落地实践:从资产盘点、分级分类到零信任闭环

做了几年企业数字化转型和数据治理,我越来越发现一个问题:很多团队谈数据安全的时候,还是一上来就买设备、装软件,杀毒、防火墙、审计系统搞了一堆,结果业务部门照样把核心数据往外拖,数据泄露了也说不清楚…

阅读更多 →
没有AI反而火了!LibreOffice一周下载破100万,国产软件该想想了 2026/10/2 13:54:30

没有AI反而火了!LibreOffice一周下载破100万,国产软件该想想了

LibreOffice 26.8 发布。首周官网下载 103.1 万次,历史最高。在所有软件都抢着加 AI 的时候,它宣布:我没有 AI。更有意思的是,这不是忘了加,是故意不加。为什么?LibreOffice 是谁?免费开源办公套…

阅读更多 →
CSP-J2、CSP-S2暴零的原因有哪些 2026/10/2 13:54:29

CSP-J2、CSP-S2暴零的原因有哪些

CSP-J2/CSP-S2复赛暴零的原因90%都不是算法不会,而是踩了OI赛制的细节坑,下面按出现概率从高到低整理所有常见暴零原因,适配四年级信奥选手的认知水平: 📁 文件与提交类(占暴零总数60%,最容易踩…

阅读更多 →
手把手教你用机乎AI:基于纯AI社交的技术集成指南与TaoToken统一通道实践 2026/10/2 13:54:29

手把手教你用机乎AI:基于纯AI社交的技术集成指南与TaoToken统一通道实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉