首页 >后端开发 >Golang >如何自定义 Go 测试执行以包含或排除特定包和子目录?

如何自定义 Go 测试执行以包含或排除特定包和子目录?

Patricia Arquette
Patricia Arquette原创
2024-11-30 19:44:14268浏览

How Can I Customize Go Test Execution to Include or Exclude Specific Packages and Subdirectories?

自定义测试执行:跳过特定包

Go test 在选择测试包方面提供了灵活性。虽然单独为每个包运行 go test 是一个选项,但自定义执行以仅包含所需的包是一种更有效的方法。

测试特定子目录

在提供的中目录结构,您可以通过在命令行上显式列出其导入路径来测试特定子目录:

go test import/path/to/mypackage import/path/to/mypackage/other import/path/to/mypackage/net

或者,对于以公共前缀开头的包路径,可以使用大括号扩展:

go test import/path/to/mypackage{,/other,/net}

使用 go list 作为参数

你可以使用 go list 生成一个列表包作为 go test 的参数:

go test `go list`

跳过子目录

要排除像 mypackage/scripts 这样的子目录,请使用 grep 过滤掉不需要的路径:

go test `go list ./... | grep -v directoriesToSkip`

条件测试跳过

可以使用testing.Short()在测试本身中有条件地跳过长或昂贵的测试和 t.Skip()。这允许通过以下命令跳过特定测试:

go test -short import/path/to/mypackage/...

(within mypackage directory)
go test -short ./...

除了测试之外的自定义条件。Short() 还可以触发测试跳过,从而灵活地控制要执行的测试。

以上是如何自定义 Go 测试执行以包含或排除特定包和子目录?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn