watch/TEST.md
AI Engineer 272f99e828 feat(watch): 新增 watch CLI 命令行工具(by AI)
- 新增 watch/watch 子包,提供 watch 命令,支持 go install 安装
- 支持 -type/-exclude-type/-exclude-path 等 watch.Start 全部配置能力
- 预设 -go/-web/-js/-py 对应各开发场景一键运行
- 预设值与显式参数合并,不替换
- 无命令时打印变更事件到 stdout
- 内部 300ms 防抖 + shell.Start 进程管理

Co-Authored-By: glm-5.1 <zai-org@claude-code-best.win>
2026-06-22 16:49:27 +08:00

1.1 KiB

Test Report

单元测试结果

执行时间: 2026-06-22

=== RUN   TestWatch
--- PASS: TestWatch (0.21s)
=== RUN   TestDebounce
--- PASS: TestDebounce (0.26s)
=== RUN   TestEasyStart
--- PASS: TestEasyStart (0.00s)
PASS
ok  	apigo.cc/go/watch	0.852s

性能测试结果 (Benchmark)

BenchmarkIsMatch-16                 	16974895	        67.03 ns/op
BenchmarkIsExcluded-16              	42681092	        24.32 ns/op
BenchmarkDebounce-16                	 3321357	       351.8 ns/op
BenchmarkKeyGeneration-16           	27723735	        42.48 ns/op
BenchmarkKeyGenerationWithFmt-16    	 7360394	       167.6 ns/op

测试覆盖场景

  1. 基础监听: 验证文件创建事件。
  2. Gitignore 语义过滤:
    • 验证 *.log 后缀匹配。
    • 验证 **/node_modules/** 目录及其内容的深度匹配与拦截。
  3. 事件防抖 (Debounce):
    • 验证 100ms 内对同一文件的 5 次连续写入被合并为 1 次回调。
  4. 路径归一化: 验证绝对路径下的准确匹配。
  5. 极简接口: 验证 EasyStart 的可用性。
  6. 性能优化验证: 验证在高频匹配场景下的 O(1) 查找能力。