Hasty Briefsbeta

双语

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开发,用于优化云成本。