问题描述
它记录了如何以go build
友好的方式构建项目,以及如何编写测试。测试不需要是使用main
包的 cmd 。它们可以简单地将 TestX 命名函数作为每个包的一部分,然后go test
会发现它们。
随着 Go 1 的发布,您问题中该链接中建议的结构有点过时了。您不再需要pkg
在src
. 只有 3 个与规范相关的目录是 GOPATH 根目录中的 3 个: bin, pkg, src 。在 src 下面,您可以简单地放置您的项目mypack
,而在其下面是您的所有 .go 文件,包括 mypack_test.go
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 概念即将过时。
解决方法
在开发过程中组织 Go 项目的标准方法是什么?
我的项目是一个包mypack
,所以我想我把所有的 .go 文件放在一个mypack
目录中。
但是,我想在开发过程中测试它,所以我至少需要一个声明main
包的文件,这样我才能做到go run trypack.go
我应该如何组织这个?go install mypack
每次我想尝试时都需要做吗?