JetBrains GoLand单元测试不支持单个单元测试case执行

譬如函数代码

Go 复制代码
func AddInt(a, b int32) int32 {
	return a + b
}

单元测试代码:

Go 复制代码
func TestAddInt(t *testing.T) {
	type args struct {
		a int32
		b int32
	}
	tests := []struct {
		name string
		args args
		want int32
	}{
		{
			name: "add",
			args: args{a: 1, b: 2},
			want: 3},
		{
			name: "add",
			args: args{a: 1, b: -2},
			want: -1,
		},
	}
	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			if got := AddInt(tt.args.a, tt.args.b); got != tt.want {
				t.Errorf("AddInt() = %v, want %v", got, tt.want)
			}
		})
	}
}

以上单元测试代码在GoLand中截图如图:

第15、19行是有可以运行符号的,此时可以单个case运行调试。

如果在25、26行之间加点逻辑代码,如下:

此时15、19行的运行图标没有了!

原因是在Run外添加处理逻辑,正确的添加逻辑位置如图所示,应该在Run函数内部。

此坑在开始写单元测试时踩了好久,在某天突然悟道此原因,记录之。

相关推荐
念何架构之路8 小时前
go-grpc设计思想
开发语言·后端·golang
microrain9 小时前
SagooIoT 的缓存换后端只改一行配置,文件后端连 Redis 都不需要
物联网·缓存·golang·sagooiot
喵了几个咪11 小时前
GoWind ShortPlay 深度拆解:三服务 BFF + Core,一条请求的完整工程链路
golang·gowind
用户40158233246212 小时前
对话一长,AI 就忘了你说过的话?Claude Code、Codex、Aider、WES Code 怎么压缩上下文
人工智能·go·ai编程
我的div丢了肿么办16 小时前
go语言抽离路由文件以及对路由进行分组
后端·go
孔令飞17 小时前
【OneX】OneX AI 工具安装、配置及功能介绍
云原生·go·ai编程
小满zs19 小时前
Go语言第十四章(文件操作)
后端·go
vipxieliang20 小时前
Go 1.24 工具链改进实战:工具依赖管理与 go vet 新分析器
后端·go
程序员爱钓鱼1 天前
Go 编程实战:Benchmark——基准测试、testing.B、benchmem、性能对比与代码优化实战
go·排序算法
紧跟先前的步伐1 天前
Go AI Agent 实战 06|JSON 结构化输出与 Go 后端校验
人工智能·ai·golang