Go语言代码测试、分析与实用特性全解析
1. 代码覆盖率文件格式与查看
代码覆盖率文件每行的格式和字段为 name.go:line.column,line.column numberOfStatements count 。最后一个字段是一个标志,用于指示 line.column,line.column 指定的语句是否被覆盖。若最后字段为 0 ,则表示代码未被覆盖。
要在浏览器中查看HTML格式的代码覆盖率输出,可运行 go tool cover -html=coverage.out 。若使用的文件名不是 coverage.out ,需相应修改命令。生成的输出中,红色线条表示未执行的代码,绿色线条表示已被测试执行的代码。部分代码标记为未跟踪(灰色),这是因为代码覆盖率工具无法处理这些代码。
2. 查找不可达的Go代码
有时,错误实现的 if 语句或位置不当的 return 语句会导致代码块不可达,即这些代码块根本不会被执行。由于这是一种逻辑错误,编译器无法捕获,因此需要找到发现此类错误的方法。
go vet 工具可帮助查找不可达代码,它会检查Go源代码并报告可疑的构造。以下是一个示例文件 cannotReach.go :
func S2() {
return
fmt.Println("
超级会员免费看
订阅专栏 解锁全文
4万+

被折叠的 条评论
为什么被折叠?



