首页  >  文章  >  后端开发  >  如何在子目录中组织 Go 测试和示例以获得更干净的工作空间?

如何在子目录中组织 Go 测试和示例以获得更干净的工作空间?

Barbara Streisand
Barbara Streisand原创
2024-11-17 21:07:01341浏览

How to Organize Go Tests and Examples in Subdirectories for a Cleaner Workspace?

Golang子目录测试

问题:是否可以创建一个组织有测试和示例的Go包在子目录中以保持清洁工作空间?

答案:是的。您可以使用 go test ./... 命令递归运行 Go 测试,列出所有要测试的包。

测试文件放置

子目录测试文件:

如果将 _test.go 文件放在子文件夹中,则 go test ./...命令将包含它们。但是,您必须为导出的变量和函数添加包名称前缀,以便能够在测试文件中进行访问。未导出的内容仍然无法访问。

同一目录测试文件:

尽管有子目录测试文件的选项,但将它们与主源文件放在一起仍然是更好的选择,因为这样更容易可访问性。

代码覆盖

使用 -cover 或 -coverprofile 进行代码覆盖:

  • 使用 go test -coverpkg=./... ./... 覆盖所有包.
  • 或者,使用 go-cover-treemap.io 进行交互式覆盖

集成测试覆盖率

从 Go 1.20 开始,覆盖率工具扩展到集成测试:

  • 使用 go build -cover -o myprogram.exe myprogram.go 创建可执行文件覆盖率。
  • 运行 GOCOVERDIR=somedata ./myprogram.exe 收集覆盖率数据。
  • 覆盖率文件将在 somedata 中生成。

单独的包测试

根据kbolino,你可以将测试放在一个单独的包,不需要单独的目录。这允许测试文件命名为 foo_test 并驻留在与包 foo 相同的目录中,同时仍然限制对私有成员的访问。

以上是如何在子目录中组织 Go 测试和示例以获得更干净的工作空间?的详细内容。更多信息请关注PHP中文网其他相关文章!

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