Todo Tree插件最醒目,因其将TODO、FIXME等注释实时聚合成侧边栏树形结构,支持点击跳转、图标分类、右键标记完成,真正解决“找不到、忘清理、难协作”问题。

VSCode 本身不生成测试用例相关的“标签”(tag),你遇到的其实是 Todo Tree 插件把 TODO、FIXME 甚至 TEST 这类注释当成了“标签”来扫描和高亮——它们不是 Git 标签,也不是 VSCode 原生概念,而是纯文本匹配结果。所谓“测试用例生成的临时标签”,大概率是你在写单元测试时随手加的 // TODO: test edge case 或者框架自动生成的 // @test 注释,被 Todo Tree 捕获并展示在侧边树里。
为什么测试代码里的注释会出现在 Todo Tree 里
Todo Tree 默认扫描所有打开文件中的预设关键词,包括 TODO、FIXME、HACK、NOTE,部分配置或扩展还可能加入 TEST、@test、it should 等模式。如果你在测试文件(如 user.test.ts)里写了带这些词的注释,它就会被识别为“待办项”,和真正要修复的 bug 混在一起。
- 不是 Git 标签,不会影响版本历史或推送行为
- 不是 VSCode 的文件标签页(tab),和
TabOut或Project Manager无关 - 本质是正则匹配 + 文件遍历,性能开销小但容易误召
如何过滤掉测试文件里的干扰项
核心思路是让 Todo Tree 忽略测试目录或特定注释模式,而不是删掉注释本身——毕竟有些 // TODO: add test for null input 是有价值的。
- 在 VSCode 设置中搜索
todo-tree.filtering.excludeGlobs,添加测试路径,例如:**/*.test.*、**/tests/**、**/__tests__/** - 修改
todo-tree.general.tags,移除你不希望匹配的词,比如删掉TEST或@test - 若只想屏蔽某类注释(如仅忽略测试文件里的
TODO),可用高级正则:在todo-tree.regex.regex中调整,例如排除// TODO后紧跟test的行(需启用todo-tree.regex.useQuickPick)
别误删 Git 标签去“清理测试标签”
有人看到 Todo Tree 树里有 “v0.1.0-test” 就慌着执行 git tag -d v0.1.0-test,这是典型混淆。那个 v0.1.0-test 如果是真实 Git 标签,它来自 git tag v0.1.0-test 命令;如果只是 Todo Tree 列表里显示的一行文字,那它根本不存在于 Git 数据库中——点它只会跳转到某行注释,删它只需删那行注释,不是删 Git 对象。
- 检查是否为真 Git 标签:运行
git tag,看输出里有没有该名字 - 轻量标签误推了?用
git push origin --delete <tag_name></tag_name>清理远程,再git tag -d <tag_name></tag_name>删本地 - 附注标签别乱删,尤其带
-s(GPG 签名)的,团队协作中删除后难以追溯
最常被忽略的一点:Todo Tree 的“标签”是视图层产物,不是数据层对象。它不写入 Git,也不改变仓库状态——你关掉插件,那些“标签”就没了。与其花时间过滤,不如确认你的测试注释是否真有必要存在;如果只是生成器自动塞的空占位,直接删掉比配一堆 regex 更省事。


















