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

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

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

从提交工具窗口运行测试
如果更改了测试类并想在提交前运行它们,可以从 提交 工具窗口执行此操作。 可以选择运行单个测试类、多个类或者目录、模块、更改列表下所有未提交的测试类。
转到 提交 工具窗口(Alt+0)。
右键点击测试类、目录、模块或更改列表,然后选择
运行 '<测试类名称>'。

结果是,GoLand 会为你的测试选择创建并启动一个临时运行配置。 如需将来重复运行同样的测试,可以在运行微件中 保存此配置 ,然后 自定义其设置。
在 GoLand 运行完您的测试后,它会在 运行 工具窗口中显示结果,并在该运行配置的选项卡上显示。 有关分析测试结果的详细信息,请参阅 探索测试结果。

使用测试标志运行测试
使用 Go 工具实参配置测试构建,并使用程序实参配置测试运行。 有关可用标志,请参阅 Go 命令文档。
请导航至 。
选择 运行测试 运行/调试配置。
要启用数据竞争检测,请输入
-race到 Go tool 参数 中。 有关支持的平台和要求,请参阅 Go 竞态检测器文档。在 程序参数 中,输入带有
-test.前缀的测试二进制文件标志:-test.failfast:在第一个测试失败后停止启动新的测试。-test.short:启用短模式。 测试可以检查testing.Short()以跳过或减少长时间运行的工作。-test.benchmem:打印基准测试的内存分配统计信息。
在软件包或目录中运行测试
在主菜单中,选择 。
点击 添加新配置 图标(
),然后选择 运行测试。
从 测试类型 下拉列表中选择以下选项之一:
软件包 :在 包路径 字段中运行所选包的所有测试。
目录 :用于运行 目录 字段中指定的目录及其子目录中的测试。 若要测试模块中的所有软件包,请选择包含其 go.mod 文件的目录。
点击 运行。
模糊测试
模糊测试需要 Go 1.18 或更高版本。
模糊测试是一种通过持续提交各种输入来自动化测试的方法。 输入是根据您在 f.Add("mySampleData") 中提供的示例数据生成的。
f.Add() 方法接受以下数据类型: string、 []byte、 rune、 int、 int8、 int16、 int32、 int64、 uint、 uint8、 uint16、 uint32、 uint64、 float32、 float64、 bool。
运行模糊测试
点击边距 运行测试 图标,选择 运行 ,然后选择模糊测试配置(例如, go test -fuzz FuzzTest)。
如果测试失败,您可以点击指向 测试数据 目录的链接,查看哪些输入导致测试失败。
要使用失败的种子数据运行 go test,请从 测试数据 目录打开文件,点击边距中的 运行 Fuzzing 测试 图标,然后选择必要的配置。

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

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

重新运行测试
重新运行单个测试
在 运行 工具窗口的运行配置选项卡上右键点击测试,然后选择 运行 'test name'。
重新运行会话中的所有测试
点击
工具栏上的 运行 或按 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) } }) }

