patent-disclosure-skill单元测试体系全解unittest discover与tools目录一一镜像的完整指南【免费下载链接】patent-disclosure-skill中国专利.skill专利点挖掘与交底书发明/实用/外观编写通俗解读专利嗅探政策动向辅助审查答复。项目地址: https://gitcode.com/GitHub_Trending/pa/patent-disclosure-skillpatent-disclosure-skill 是一个面向中国专利的开源技能.skill覆盖专利点挖掘、交底书发明/实用新型/外观编写、专利通俗解读与审查答复辅助。本文以它的测试体系为切口讲清楚tests/目录为什么与tools/按同一套职责一一镜像以及如何用unittest discover一条命令跑通全部单测——不需要你写一行测试代码。tests 与 tools一套“镜像”的目录设计 打开 tests/README.md 你会发现一张对照表每个测试子目录都对应tools/下的一个职责目录。这不是巧合而是有意为之的工程决策——测试跟着被测代码“搬家”职责边界天然清晰测试目录对应工具目录守住的职责tests/crawl/tools/crawl/国知局CNIPA公布公告检索与类型过滤tests/patent_reader/tools/patent_reader/专利通俗解读、Schema 入库、附图与权要处理tests/shared/tools/shared/Markdown/Word 转换、公式渲染、CAD 扫描等公用脚本tests/oa/tools/oa/审查答复模式 D脱敏、入库、向量检索tests/fixtures/—共享样例输入如 patent_reader_sample.txt这种“镜像结构”带来的好处是新增一个工具子目录就知道该在哪放测试反之看到某个测试红了也能立刻定位到tools/下被改动的模块。对新手维护者来说认知成本几乎为零。3 条命令跑通全部单元测试所有测试都基于标准库unittest无需安装 pytest。在仓库根目录执行# 全部测试-t . 让包路径从仓库根解析不能省 python -m unittest discover -s tests -t . -p test_*.py # 按职责分组跑 python -m unittest discover -s tests/shared -t . -p test_*.py # 单文件直接运行 python tests/patent_reader/test_schema_vault.py三个关键参数值得记一下-s tests指定搜索起始目录-t .把顶层目录设为仓库根保证import tools.xxx这类包导入能解析——这是本仓库测试能直接import tools.shared.xxx的前提-p test_*.py文件名匹配模式统一以test_前缀识别用例。另外每个测试子目录都放了__init__.py连 tests/init.py 根目录也有这是discover递归导入能正常工作的关键细节。提示tests/crawl/test_cnipa_epub_chain.py 是国知局实网联调脚本不是 unittest 用例需要联网并单独执行日常跑测试不受影响。分组细读每一组测试在守什么 crawl 组守住“查新检索”的类型判定tests/crawl/test_cnipa_epub_crawler.py 是典型代表。它不真正打开网页用MagicMock模拟浏览器而是把精力放在纯逻辑上CN209861402U能否被正确推断为实用新型、CN309939145S能否识别为外观设计、用户声明与文献种类码冲突时谁优先。这些规则正对应 tools/shared/patent_type.py 中的别名归一化与国知局 checkbox 预设——查新结果分错类型后面整条交底书流程都会跑偏所以值得单测兜底。patent_reader 组守住“通俗解读”的入库质量这是测试数量最多的一组9 个文件对应 tools/patent_reader/ 下extract/、analyze/、vault/三层test_schema_vault.py验证结构 Schema 渲染成 Markdown 小节、以及向旧版笔记幂等 upsert 时能正确替换历史标题test_note_cites.py权利要求、附图的 Obsidian 双链引用格式与表格内|转义test_patent_reader_pipeline.py以 fixtures/patent_reader_sample.txt 为输入端到端跑通“提取→分析→入库”全链路冒烟test_extract_patent_text.py、test_fetch_patent_pdf.py等则分别覆盖文本抽取与 PDF 链接解析。入库后的效果长这样——单篇解读沉淀为双链笔记多篇自然长成图谱shared 组守住“公用脚本”的边界条件tests/shared/ 下 10 个测试文件是“小而精”的典范例如test_formula_eval.py公式受限代算的三态返回ok/mismatch/skip、化学方程式配平与质量分数告警对应 tools/shared/formula_eval.py 与formula_chem.pytest_formula_paradigms.py默认范式库规模、按 id 取范式、case 级 YAML 覆盖合并test_md_to_docx_table.pyMarkdown 表格单元格内含 LaTeX\|时不得错误拆列——这是交底书转 Word 时的真实踩坑点test_design_lineart_gate.py/test_structure_lineart_gate.py外观与实用新型线稿功能“默认关闭、未确认不出图”的门禁逻辑对应 tools/shared/design_lineart_gate.py 与 tools/shared/structure_lineart_gate.pytest_cad_step_scan.py无 CadQuery 依赖下验证.step/原生 CAD 后缀分类与扫描报告构建。线稿门禁守住的效果就是下面这两类自动生成的黑白轮廓线稿CAD 扫描守住的则是工程模型的多视角投影能力oa 组守住“审查答复”的脱敏与检索tests/oa/test_oa_store.py 用不到 10 行代码验证了最敏感的一环——脱敏申请人上海某某科技有限公司电话13812345678必须变成申请人甲 【电话已脱敏】。同一文件还覆盖 case Markdown 往返序列化parse_case_markdown↔dump_case_markdown、分块入库与向量检索并演示了可选依赖的优雅降级未安装sqlite-vec时调用self.skipTest()跳过而不是让整个套件报错。4 个值得抄进自己项目的工程细节 ✍️镜像目录 统一前缀tests/模块/test_*.py对应tools/模块/发现discover与维护find成本都最低sys.path显式注入每个测试文件开头用Path(__file__).resolve().parents[2]定位仓库根并插入sys.path配合discover -t .无论从哪个目录跑都能导入fixtures 共享样例tests/fixtures/ 集中存放样例输入如patent_reader_sample.txt多个测试复用同一份数据避免样例散落软依赖自动跳过matplotlib、latex2mathml、sqlite-vec等重依赖缺失时用SkipTest降级如 test_math_render.py、test_math_omml.py保证“核心路径永远可跑增强路径按需可用”。附录tests ↔ tools 完整对照清单测试文件主要被测模块test_cnipa_epub_crawler.pytools/crawl/cnipa_epub_crawler.py、tools/shared/patent_type.pytest_schema_vault.pytools/patent_reader/vault/schema_vault.pytest_note_cites.pytools/patent_reader/vault/note_cites.pytest_patent_reader_links.pytools/patent_reader/vault/link_patent_notes.pytest_formula_eval.pytools/shared/formula_eval.py、formula_chem.py、formula_units.pytest_mermaid_browser.pytools/shared/browser.pyChrome→Edge→内置 Chromium 回退链test_oa_store.pytools/oa/store.py、redact.py、case_md.py一句话总结先看懂tools/的职责划分再回头看tests/你会发现每个测试文件都在守一个明确的边界。这正是这套单元测试体系最值得新手借鉴的地方。【免费下载链接】patent-disclosure-skill中国专利.skill专利点挖掘与交底书发明/实用/外观编写通俗解读专利嗅探政策动向辅助审查答复。项目地址: https://gitcode.com/GitHub_Trending/pa/patent-disclosure-skill创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考 SEO 优化官网定制响应式建站教育培训建站