在开发过程中组织Go项目的标准方法是什么?
我的项目是一个包mypack,所以我想我将所有.go文件放在一个mypack目录中。
mypack
但是,然后,我想在开发过程中对其进行测试,因此至少需要一个声明该main包的文件,以便我可以go run trypack.go
main
go run trypack.go
我应该如何组织呢?go install mypack每次尝试都需要做吗?
go install mypack
我建议阅读有关如何编写Go代码的页面
它记录了如何以gobuild友好的方式构建项目以及如何编写测试。使用该main程序包不必进行cmd测试。它们可以简单地被TestX命名为每个程序包的一部分,然后gotest发现它们。
gobuild
gotest
现在,随着Go1的发布,问题中该链接中建议的结构有些过时了,您不再需要在pkg目录下放置目录src。仅有3个与规范相关的目录是GOPATH根目录中的3个目录:bin,pkg,src。在src之下,您可以简单地放置您的项目mypack,并且在其下是所有.go文件,包括mypack_test.go
pkg
src
go build 然后将其构建到根级别pkg和bin中。
go build
因此,您的GOPATH可能如下所示:
~/projects/ bin/ pkg/ src/ mypack/ foo.go bar.go mypack_test.go
export GOPATH=$HOME/projects
$ go build mypack $ go test mypack
更新:从> = Go1.11开始,模块系统现在已成为工具的标准部分,并且GOPATH概念已接近过时。