在开发过程中组织 Go 项目的标准方法是什么?
我的项目是一个单独的包mypack,所以我想我把所有的 .go 文件放在一个mypack目录中。
mypack
但是,我想在开发过程中对其进行测试,所以我至少需要一个声明main包的文件,这样我才能做到go run trypack.go
main
go run trypack.go
我应该如何组织这个?go install mypack每次我想尝试时都需要这样做吗?
go install mypack
我建议查看有关如何编写 Go 代码的页面
它既记录了如何以go build友好的方式构建项目,也记录了如何编写测试。测试不需要是使用main包的 cmd。它们可以简单地将 TestX 命名函数作为每个包的一部分,然后go test会发现它们。
go build
go test
您问题中该链接中建议的结构有点过时,现在随着 Go 1 的发布。您不再需要将pkg目录放在src. 仅有的 3 个与规范相关的目录是 GOPATH 根目录中的 3 个:bin、pkg、src。在 src 下面,您可以简单地放置您的项目mypack,下面是您的所有 .go 文件,包括 mypack_test.go
pkg
src
go build然后将构建到根级别的 pkg 和 bin 中。
所以你的 GOPATH 可能看起来像这样:
~/projects/ bin/ pkg/ src/ mypack/ foo.go bar.go mypack_test.go
export GOPATH=$HOME/projects
$ go build mypack $ go test mypack
更新:从 >= Go 1.11 开始,Module系统现在是工具的标准部分,GOPATH 概念即将过时。