goreporter
Golang 工具,用于执行静态分析,单元测试,代码审查和生成代码质量报告。 这是一个工具,它可以并发地运行一大堆这样的 linters,并将它们的输出规范化为一个报告。
支持的 linters
- gofmt -- 检查代码是否正确格式化,并且无法进一步简化。
- govet -- 报告可能无意中隐藏的变量。
- golint -- Golint 是 Go 源代码的 linter
- unittest -- Golang 单元测试状态。
- deadcode -- 发现未使用的代码。
- gocyclo -- 计算函数的圈复杂度。
- varcheck -- 查找未使用的全局变量和常量。
- structcheck -- 查找未使用的结构字段。
- aligncheck -- 警告非最佳对齐结构。
- errcheck -- 检查是否使用了错误返回值。
copycode(dupl) - Reports potentially duplicated code.- gosimple -- 报告代码的简化。
- staticcheck -- 静态地检测 bug,包括明显的和细微的 bug。
- godepgraph -- Godepgraph 是一个生成 Go 包依赖关系图的程序。
- misspell -- 纠正英语中常见的拼写错误…很快。
- countcode -- 计算项目行数和文件数。
- interfacer -- 建议使用更窄的接口。
- depth -- 计算 go 函数的 maxdepth。
- flen -- Flen 在 Golang 包中提供了 functions methods 长度的统计信息。
模板
可以通过 -t
待办事项清单
- 此版本将重新设计模板。
- 添加 interfacer 和 safesql 和 gofmt(-s),govet linter。
安装
要求
快速开始
安装 goreporter(见上文)。
go get -u github.com/360EntSecGroup-Skylar/goreporter
运行:
注意
您必须确认您的项目是否正常运行。 特别是 vendor 的问题,当在默认路径中找不到包时,goreporter 将再次从可能的 vendor 路径中查找。
goreporter -p [projectRelativePath] -r [reportPath] -e [exceptPackagesName] -f [json/html/text] {-t templatePathIfHtml}
- -version GoReporter 的版本。
- -p 必须是一个有效的 Golang 项目路径。
- -r 保存到报表的路径。
- -e 异常包(多个包之间用逗号分隔,例如:"linters/aligncheck,linters/cyclo")。
- -f 报告格式 json、html 或 text。
- -t 模板路径,如果没有指定,将使用默认模板。
默认情况下,默认模板用于生成 html 格式的报告。
你可以看到结果细节:在线示例报告
致谢
徽标由 Ri Xu 设计。
(First edition: vz edited at 2019.08.23)