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函数内部。

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

相关推荐
hasty13 小时前
限制写了却没生效:OpenTelemetry Go 的 Unicode 截断边界
开发语言·后端·golang
JWASX14 小时前
Java 转 go 学习 - 项目管理
go
喵个咪18 小时前
Go 写业务,Rust 扛底盘:一套可落地的混合架构
后端·rust·go
EatFan18 小时前
Go语言全栈实战:基于 Gin + Vue + JWT + RBAC 从零搭建前后端分离权限管理系统
vue.js·golang·go·vue·gin·jwt·rbac
ZealSinger18 小时前
Go slog生产落地LevelVar与共存
开发语言·后端·golang·go
丹宇码农19 小时前
Go 与 Python 协程(Coroutine)对比演示项目
开发语言·python·golang
ttwuai19 小时前
Go开源后台管理系统推荐:3个官方仓库怎么按技术栈和适用边界比较?
开发语言·golang·开源
福兮说20 小时前
Go encoding/json 的八个默认行为,以及 Go 1.25 的 json/v2 改了哪几个(附实测输出)
go
合橱瑰20 小时前
踩坑实录:包是好的,代码却报错?一次“数字ID”引发的插件启动血案
架构·go
测试员周周20 小时前
【jev应用到测试】94 条 UI 报错交给 Jev,三档判对 85.1%,开单闸门定在 0.6
人工智能·python·测试工具·单元测试·测试用例