Go代码测试覆盖率
-
目录结构
├── main.go └── main_test.go -
代码
// main.go package main import "fmt" func Divide(a, b float64) (float64, error) { if b == 0 { return 0, fmt.Errorf("division by zero is not allowed") } return a / b, nil } // main_test package main import "testing" func Test_Divide(t *testing.T) { testCases := []struct { a float64 b float64 expected float64 shouldFail bool }{ {10.0, 2.0, 5.0, false}, {15.0, 3.0, 5.0, false}, } for _, tc := range testCases { result, err := Divide(tc.a, tc.b) if tc.shouldFail { if err == nil { t.Errorf("Expected an error for %f/%f but got none", tc.a, tc.b) } } else { if err != nil { t.Errorf("Unexpected error for %f/%f: %s", tc.a, tc.b, err) } if result != tc.expected { t.Errorf("Expected %f/%f to be %f, but got %f", tc.a, tc.b, tc.expected, result) } } } } -
执行以下命令,生成文件c.out
go test -coverprofile=c.out -
执行以下命令,会自动打开浏览器
go tool cover -html=c.out -
会看到以下结果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人