多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

如何跑 claude-obsidian 测试套件?make test 完整详解

如何跑 claude-obsidian 测试套件?make test 完整详解 如何跑 claude-obsidian 测试套件make test 完整详解【免费下载链接】claude-obsidianSelf-organizing AI second brain for Obsidian Claude Code. Drop any source and Claude reads, links, and files it into one connected knowledge graph of plain Markdown you own. AI note-taking, personal knowledge management (PKM), and an open-source Notion alternative. Based on Karpathys LLM Wiki pattern.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-obsidianclaude-obsidian 是一个为 Obsidian Claude Code 打造的自组织 AI 第二大脑你丢入任何资料它会阅读、链接并归档成一张纯 Markdown 知识图谱。那么它的代码质量如何保证答案就在一条命令里make test。本文将带你完整理解 claude-obsidian 的测试套件怎么跑、每个子目标在验证什么以及遇到问题时如何单独调试。快速上手一键运行完整测试开始之前确认你的环境满足两个条件Python 3.11 或更新版本Makefile 中默认PYTHON ? python3Bashshell 测试套件依赖它获取代码并运行git clone https://gitcode.com/GitHub_Trending/cl/claude-obsidian cd claude-obsidian make test全部通过后终端会打印All hermetic tests and executable contracts passed. hermetic密封式是本项目的测试设计原则所有测试在临时目录中自建数据、不依赖网络、不污染你的真实 vault可放心重复执行。make test 到底跑了什么make test并不是一个单一测试而是按固定顺序串联了 4 个子目标见 Makefile子目标运行内容验证对象test-python逐个隔离执行tests/test_*.pyPython 核心逻辑claude_obsidian/test-shell逐个隔离执行tests/test_*.sh脚本工具scripts/test-contractscontracts --check-onlycontracts --verify产品与能力契约声明test-packagepackage validate技能、钩子、清单元数据其中逐个隔离执行是刻意为之每个测试文件独立启动 Python 解释器任何一个文件失败都会立刻中止并暴露而不是被后续输出淹没。test-python30 个 Python 测试文件遍历tests/目录下所有test_*.py文件并逐一运行。它们覆盖的核心模块包括路径与边界test_paths.py、test_vault_root_separation.py —— vault 根目录选择、插件树隔离事务系统test_transaction.py、test_checkpoint.py —— 可恢复写事务锁定机制test_legacy_lock.py、test_concurrent_write.sh —— 并发写保护检索与索引test_retrieve.py、test_bm25_index.py安装流程test_setup_vault.py、test_distribution_vaults.py测试数据来自 tests/fixtures/ 下的夹具目录capture、contracts、lint、migration 等保证测试可重复。test-contracts最claude-obsidian的一步这是理解本项目特色的关键。项目用 JSON 契约文件诚实地声明自己的能力边界config/product-contract.json —— 产品承诺了什么promise、明确不做什么non_promisesconfig/capabilities.json —— 每项能力的读取/写入范围、实现路径make test-contracts会执行两轮校验python3 scripts/claude-obsidian.py contracts --check-only # 静态检查契约一致性 python3 scripts/claude-obsidian.py contracts --verify # 执行能力就绪验证它确保声明的能力与实际存在实现严格一致——没有的适配器会明确降级而不是被模拟。test-package打包元数据体检执行python3 scripts/claude-obsidian.py package validate校验 15 个技能skills/、钩子hooks/hooks.json与清单文件的一致性保证分发的便携技能包元数据完整。辅助目标按需组合运行命令用途make help打印所有开发者目标说明make validate只跑契约 打包校验跳过测试套件快速检查make test-python只跑 Python 测试make test-shell只跑 shell 测试make clean-test-state清理.vault-meta/中的运行时锁、缓存与生成状态 小技巧如果某次运行卡在锁文件上先执行make clean-test-state再重跑make test。如何单独运行一个测试文件每个测试文件都是可独立执行的脚本调试时不必跑全量# Python 测试直接运行该文件 python3 tests/test_paths.py # Shell 测试直接用 bash 运行 bash tests/test_wiki_lock.sh这正是make test-python/make test-shell底层的做法——对每个测试文件独立启动见 Makefile。常见问题FAQQ提示 Python 版本过低A本项目核心要求 Python 3.11。升级后重试或指定解释器make test PYTHONpython3.12。Q测试会改动我的 vault 吗A不会。测试严格使用tempfile临时目录自建一次性 vault如 test_paths.py 中可见从不触碰真实数据。QWindows 能直接跑吗A建议用 WSL原生 Windows 与 Git Bash 不在当前兼容保证内CI 在 Linux 和 macOS 上验证见 README.md Requirements 一节。Q改了代码后应该跑什么A按照 AGENTS.md 的验证要求行为变更之后运行完整make test。小结claude-obsidian 的测试体系设计得非常清晰一条make test覆盖逻辑测试 → 脚本测试 → 契约校验 → 打包校验四层防线全部自包含、可随时重复。理解了 4 个子目标各自的分工后你既能一键验证整个项目也能精准定位到单个测试文件进行调试。更多开发细节可参考 CONTRIBUTING.md 与安装指南 docs/install-guide.md。【免费下载链接】claude-obsidianSelf-organizing AI second brain for Obsidian Claude Code. Drop any source and Claude reads, links, and files it into one connected knowledge graph of plain Markdown you own. AI note-taking, personal knowledge management (PKM), and an open-source Notion alternative. Based on Karpathys LLM Wiki pattern.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-obsidian创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表