运行测试
直接在文件或文件夹中运行测试
如果您的测试在开始前不需要任何特定操作,并且您不想配置其他选项,您可以使用以下选项运行它们:
将插入符号放在测试文件上以运行该文件中的所有测试,或放在测试方法上,然后按 Ctrl+Shift+F10。 或者,点击测试方法旁边的
边距图标,并从列表中选择 运行“<test name>”。
测试状态不同,对应的边栏图标也会有所变化:
边框图标表示一组测试。 使用此图标运行文件中的所有测试。
装订区域图标标记新测试。
边栏图标标记成功的测试。
装订线图标标记失败的测试。
要运行文件夹中的所有测试,请在 项目 工具窗口中选择此文件夹并按下 Ctrl+Shift+F10 或从上下文菜单中选择 在 '文件夹' 中运行测试。

使用 Run 小部件运行测试
当您运行测试时,GoLand 会创建一个临时运行配置。 您可以保存临时运行配置、更改其设置、与团队其他成员共享。 有关更多信息,请参见 运行/调试配置。
创建一个新的 run configuration或者保存一个临时的。
请使用主工具栏上的运行小部件选择您要运行的配置。
点击
或按 Shift+F10。

从结构运行测试
在 结构 工具窗口中,您可以选择一个或多个测试方法来运行。 在这种情况下,IDE 还会使用这些方法创建一个临时运行/调试配置,您可以 保存并进行编辑。
在 项目 工具窗口中,双击 Go 测试文件(
_test.go)。导航到 。
在 结构 工具窗口中,右键点击一个或多个测试方法,然后选择
运行 '方法 名称' (Ctrl+Shift+F10)。
在 结构 工具窗口中右键点击某个方法,然后选择:
如果只有一个具有 模式 测试范围的配置,则选择 添加到临时套件:<Configuration_name>。
如果有多个具有 模式 测试范围的配置,请选择 添加到 JUnit 模式套件 ( JUnit )/添加到临时套件 ( TestNG )。 在这种情况下,会出现一个弹出窗口,您可以在其中选择目标配置。

在 GoLand 运行完您的测试后,它会在 运行 工具窗口中显示结果,并在该运行配置的选项卡上显示。 有关分析测试结果的详细信息,请参阅 探索测试结果。

使用测试标志运行测试
您可以使用测试标志运行测试,例如 -race、 -failfast、 -short 等。 在 Go 文档 pkg.go.dev 中查看其他标志。
导航到 。
点击您用于运行应用程序或测试的运行/调试配置。 在 程序参数 字段中,指定您计划使用的标志:
-race:启用数据竞争检测。 仅支持linux/amd64、freebsd/amd64、darwin/amd64、windows/amd64、linux/ppc64le和linux/arm64(仅适用于 48 位 VMA)。-test.failfast:在第一个测试失败后停止新测试。-test.short:缩短长时间运行测试的运行时间。-test.benchmem:打印基准测试的内存分配统计信息。

运行项目中的所有测试
在主菜单中,选择 。
点击 添加新配置 图标(
)并选择 Go 测试。
从 测试种类 下拉列表中选择以下选项之一:
包 :在 包路径 字段中运行所选包的所有测试。
目录 :在 目录 字段中运行所选包的所有测试。
单击 运行。
模糊测试
模糊测试是一种通过持续提交各种输入来自动化测试的方法。 输入是根据您在 f.Add("mySampleData") 中提供的示例数据生成的。
f.Add() 接受以下数据类型: string、 []byte、 rune、 int、 int8、 int16、 int32、 int64、 uint、 uint8、 unit16、 uint32、 uint64、 float32、 float64、 bool。
运行模糊测试
点击边距 运行测试 图标,选择 运行(U) ,然后选择模糊测试配置(例如, go test -fuzz FuzzTest)。
如果测试失败,您可以点击指向 testdata 目录的链接,查看哪些输入导致测试失败。
要使用失败的种子数据运行 go test,请从 testdata 目录打开文件,点击边距中的 运行模糊处理 图标,然后选择必要的配置。

调试模糊测试
通过点击必要行的边距创建一个断点。
或者,点击您想要创建断点的行,然后按 Ctrl+F8。
单击 。
在 调试 弹出窗口中,选择所需的运行/调试配置。
提交后运行测试
当您想检查更改是否会破坏代码时,可以通过运行测试作为提交检查来实现。
设置测试配置
按 Alt+0 打开 提交 工具窗口,然后点击 显示提交选项
。
在 高级提交检查 菜单下, Run Tests 选项旁,点击 选择配置 并选择您要运行的配置。

在您设置好测试配置后,每次提交时都会运行指定的测试。
停止测试
在运行配置选项卡的 运行 工具栏上使用以下选项:
点击
或按 Ctrl+F2 以立即终止该进程。

重新运行测试
重新运行单个测试
在 运行 工具窗口的运行配置选项卡上右键点击测试,然后选择 运行 '测试名称'。
重新运行会话中的所有测试
点击
工具栏上的 运行 或按 Ctrl+F5 重新运行会话中的所有测试。
重新运行失败的测试
单击
位于 运行 工具栏上,仅重新运行失败的测试。
按住 Shift 并点击
选择是否要再次 运行 失败的测试或 调试 它们。
您可以配置 IDE 以触发在先前测试运行期间被忽略或未开始的测试以及失败的测试。 点击
工具栏上的 运行 并启用 将未启动的测试包含到重新运行的失败测试中 选项。
自动重新运行测试
在 GoLand 中,您可以启用类似自动测试的运行器:当前运行配置中的任何测试在您更改相关源代码后会自动重新启动。
点击
自动重新运行 可在测试结果工具栏上启用类似于 autotest 的运行程序。
调试失败的测试
如果您不知道测试失败的原因,可以调试它。
提高效率的提示
运行单个表格测试
您可以通过使用边距中的 运行 图标(
)运行单个表格测试。 此外,您可以从 运行 工具窗口导航到单个表格测试。
当前对表格测试的支持具有以下限制:
测试数据变量必须是切片、数组或映射。 它必须在与
t.Run调用相同的函数中定义,并且在初始化后不得使用(range子句在for循环中除外)。单个测试数据条目必须是结构体字面量。 在子测试名称表达式中使用的循环变量在
t.Run调用之前不得使用。子测试名称表达式可以是测试数据字符串字段、测试数据字符串字段的连接,或带有
%s和%d格式符的fmt.Sprintf()调用。例如,在以下代码片段中,
fmt.Sprintf("%s in %s", tc.gmt, tc.loc)是子测试名称表达式。for _, tc := range testCases { t.Run(fmt.Sprintf("%s in %s", tc.gmt, tc.loc), func(t *testing.T) { loc, err := time.LoadLocation(tc.loc) if err != nil { t.Fatal("could not load location") } gmt, _ := time.Parse("15:04", tc.gmt) if got := gmt.In(loc).Format("15:04"); got != tc.want { t.Errorf("got %s; want %s", got, tc.want) } }) }

