ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

AI File Sorter 测试体系全解析:Catch2 单元测试、生产自测与 Live LLM 实战指南

AI File Sorter 测试体系全解析:Catch2 单元测试、生产自测与 Live LLM 实战指南 AI 应用大模型本地部署桌面应用【免费下载链接】ai-file-sorterCross-platform desktop application for content-aware file organization and renaming. Supports local and remote LLMs, preview-based workflows, and fully user-controlled changes.项目地址https://gitcode.com/gh_mirrors/ai/ai-file-sorter点击查看免费下载AI File Sorter 是一款支持本地与云端大模型的跨平台 AI 文件整理与重命名桌面应用。为了保障 AI 分类、文件改名、缓存学习等核心功能稳定可靠项目构建了一套分层测试体系基于 Catch2 的自动化单元测试、可随生产二进制运行的自测模式以及面向真实本地大模型的 Live LLM 实战测试。本文将从新手视角带你快速了解这套测试体系如何运作。1. 测试体系全景三层防线如何分工AI File Sorter 的测试分为三层各负其责共同覆盖从代码逻辑到真实运行时的全链路测试层位置速度验证目标Catch2 单元/集成测试tests/unit/快秒级~分钟级代码逻辑、UI 行为、边界条件生产自测模式可执行文件--self-test快真实二进制的确定性检查Live LLM 实战测试tests/live_llm/慢分钟级真实模型 真实文件的黑盒效果官方将测试地图浓缩在 docs/testing.md 中而 TESTS.md 则是一份逐用例的详细目录每个测试文件包含什么用例、目的、前置条件、操作步骤和预期结果堪称测试文档即代码说明书的典范。2. Catch2 单元测试日常开发的主力所有单元测试位于 tests/unit/使用 Catch2 框架通过 CTest 统一调度。配置时需要开启AI_FILE_SORTER_BUILD_TESTSON之后只需两条命令cmake --build build-tests --config Release --target ai_file_sorter_tests --parallel ctest --test-dir build-tests -C Release --output-on-failure只想跑单个用例直接按名称支持模式匹配过滤即可./build-tests/ai_file_sorter_tests 用例名称或模式单元测试覆盖了哪些关键模块TESTS.md 按测试文件逐一登记了 50 个测试源文件重点模块包括无头分析命令tests/unit/test_headless_analysis_command.cpp验证 Explorer 集成的--headless契约包括运行锁占用时报告blocked状态、空文件夹分类完成时写出completed状态 JSON、UTF-8 文件名在 Review 状态中不损坏等二十余个用例本地 LLM 后端tests/unit/test_local_llm_backend.cpp覆盖 CUDA/Vulkan 后端探测、显存不足时安全回退 CPU、GPU 层数重试阶梯如20, 15, 11, 8, 6, 4, 3, 2, 1等 GPU 相关细节提示词构建器tests/unit/test_local_llm_prompt_builder.cpp确保文档、图片、目录各自路由到专属系统提示词且长分析段落重试裁剪后仍保留分类限制与回答格式复选框路由矩阵tests/unit/test_checkbox_matrix.cpp穷举 128 种分析选项组合验证每个文件都落入预期分桶——这是保证用户勾什么、程序就做什么的兜底防线用户学习库tests/unit/test_user_learning_store.cpp验证用户确认的分类映射持久化、向量嵌入更新、清除学习行为时数据库依然可用缓存维护tests/unit/test_cache_maintenance_service.cpp确认清理分类缓存时不会误删用户学习数据。一个值得新手学习的细节涉及 GUI 的测试使用 Qt 无头平台插件Windows 用minimal、其他平台用offscreen无需显示器也能跑完整的界面逻辑测试。3. 生产自测模式--self-test与--test与许多项目不同AI File Sorter 的生产二进制本身就内置了测试能力实现见 app/include/AppTestRunner.hpp--self-test运行确定性的无头检查并以通过/失败退出码结束。当前套件whitelist会在临时配置目录中构建大型合成白名单验证压缩提示词候选选择、已学分类偏好和 Unicode 白名单标签。可用--self-testwhitelist单独指定套件./build-tests/aifilesorter --self-test ./build-tests/aifilesorter --self-testwhitelist--test启动正常 GUI 并附加 Tests 菜单自动生成更大的示例白名单与示例文件然后调用你选择的真实 LLM 走完整分析流程方便在 Review 对话框中人工审查效果。测试模式产生的白名单、缓存、撤销数据都隔离在test_mode_profile目录中不会污染真实配置。这种生产自测的价值在于它测试的是用户真正运行到的那个二进制能暴露纯单元测试发现不了的环境问题比如打包、路径、权限。4. Live LLM 实战测试真实模型 真实文件tests/live_llm/headless_live_llm_tests.py 是一套可选的黑盒集成测试它对真实构建出的aifilesorter --headless命令发起攻击性检验使用真实的本地文本模型GGUF对真实或生成的文件副本进行分类、重命名然后校验输出的状态/Review JSON 以及文件系统上的实际变化。详见 tests/live_llm/README.md。为什么它是可选的这套测试慢、依赖硬件、且模型措辞天然不确定因此不纳入默认快速循环。它断言的是稳定的生产契约而非模型的精确输出状态 JSON 合法、Review 计划成功生成分类结果非空、且严格约束在白名单范围内仅处理选中的文件同目录多选边界文件扩展名保持不变多语言重命名英语/法语/简体中文/印地语如何开启并运行在 CMake 配置时追加-DAI_FILE_SORTER_ENABLE_LIVE_LLM_TESTSONWindows 用户推荐用辅助脚本.\app\build_windows.ps1 -Configuration Release -Variants Standard -BuildTests -EnableLiveLlmTests然后指定模型并执行带live-llm标签的测试$env:AI_FILE_SORTER_LIVE_LLM_MODELC:\models\text-model.gguf ctest --test-dir build-tests -L live-llm --output-on-failure新手友好的容错设计如果缺少可执行文件或可用模型runner 会以退出码77结束CTest 将其报告为跳过而非失败不会污染你的日常测试基线。每轮运行还会在工作目录写progress.log每个用例保留command.txt、stdout.txt、status.json等现场文件失败时方便复现排查。5. 什么改动该跑什么测试docs/testing.md 给出了实用的变更 → 测试映射值得作为日常开发规范改了提示词或分类体系→ 先跑提示词构建器与分类相关测试改了无头模式或 Explorer 集成→ 跑聚焦的Headless*测试并同步更新 TESTS.md改了更新器/更新源→ 跑更新器与更新源测试改了打包/构建脚本→ 除了单元测试还要在相应平台验证构建路径。辅助脚本也很齐全tests/run_all_tests.sh 一键串行执行 tests/run_database_tests.sh数据库场景与 tests/run_translation_tests.sh翻译管线保证多语言与持久化两条长尾链路不被遗漏。6. 总结AI File Sorter 的测试体系体现了AI 应用测试的最佳实践快而确定的 Catch2 单元测试覆盖 99% 的回归场景且 UI 测试可在无头环境运行生产自测--self-test/--test让开发者随时用真实二进制做确定性体检Live LLM 黑盒测试用稳定不变量而非精确文案来约束不确定的模型输出慢则慢矣却守住了最后的真实运行时防线。对于想学习 AI 桌面应用工程实践的新手这套分层 文档即契约TESTS.md 稳定不变量断言的组合是一份可以直接借鉴的范本。赞分享AI 应用大模型本地部署桌面应用【免费下载链接】ai-file-sorterCross-platform desktop application for content-aware file organization and renaming. Supports local and remote LLMs, preview-based workflows, and fully user-controlled changes.项目地址https://gitcode.com/gh_mirrors/ai/ai-file-sorter点击查看免费下载相关推荐Perfetto 测试体系实战指南单元测试、集成测试、Diff 测试与 CI 全链路Perfetto 测试体系实战指南单元测试、集成测试、Diff 测试与 CI 全链路 Perfetto 因构建配置与嵌入目标独立构建、Android in可观测性后端开发工具前端数据可视化Spectrum 测试体系完全指南Jest 单元测试与 Cypress 集成测试实战Spectrum 测试体系完全指南Jest 单元测试与 Cypress 集成测试实战 本文围绕 Spectrum 开源社区平台的测试体系展开系统讲解其基于后端前端即时通讯社交React Native Windows 测试体系完全指南单元测试、集成测试与 E2E 测试实战React Native Windows 测试体系完全指南单元测试、集成测试与 E2E 测试实战 导读 本文以 docs/testing.md https:/跨平台前端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进