Show HN: Identifiy test coverage gaps in your Go projects
3 months ago
- #Testing
- #Static Analysis
- #Go
- 一个名为testvet的Go静态分析工具,用于识别Go项目中缺失的测试覆盖和错误放置的测试函数。
- 功能包括:缺失测试检测、低覆盖率检测、基于AST的调用分析、错误放置测试检测、方法支持、灵活过滤和清晰输出。
- 可通过`go install github.com/LeanerCloud/testvet@latest`安装或从源码构建。
- 使用示例包括分析当前或特定目录、排除私有函数、显示详细输出和设置覆盖率阈值。
- 输出内容包括无测试覆盖的函数、错误放置的测试以及低覆盖率函数(附带行号和百分比)。
- 该工具使用Go的`go/ast`包进行解析、函数提取、测试提取、调用分析、覆盖率过滤和匹配。
- 排除项包括`main()`和`init()`函数、`vendor/`和`testdata/`目录以及隐藏目录。
- 支持命令行标志:目录分析、排除私有函数、详细输出、覆盖率阈值和使用覆盖率数据。
- 与`go test -cover`对比:testvet回答函数是否被任何测试调用,而`go test -cover`测量语句覆盖率百分比。
- 结合两者可帮助发现未测试函数、衡量现有测试的彻底性并识别测试不足的函数。
- 欢迎在MIT许可证下贡献代码,该工具由LeanerCloud开发,用于优化云成本。