在开发过程中组织 Go 项目的标准方法是什么?
我的项目是一个包mypack,所以我想我把所有的 .go 文件放在一个mypack目录中。
mypack
但是,我想在开发过程中测试它,所以我至少需要一个声明main包的文件,这样我才能做到go run trypack.go
main
go run trypack.go
我应该如何组织这个?go install mypack每次我想尝试时都需要做吗?
go install mypack
它记录了如何以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 开始,模块系统现在是工具的标准部分,GOPATH 概念即将过时。