组织 在开发过程中Go 项目的标准方法是什么? " J1 x/ ]! }& i5 W6 k$ }$ L4 z我的项目是一个包mypack,所以我想我把所有的 .go 一个文件mypack目录中。 4 Q4 r6 R6 G9 @( F; u但是,我想在开发过程中测试一下,所以我至少需要一份声明main只有这样,我才能做到go run trypack.go3 n, l$ E" {2 |( W% e0 k
我该怎么组织这个?go install mypack每次想尝试都需要吗?) ]3 [2 M5 d- R k) e
$ R. R q+ e) K# x3 Y解决方案: ( h. N; q0 t T, S! e2 D/ W6 [* } 它记录了怎么做go build建设项目的友好方式,以及如何编写测试。测试不需要使用main包的 cmd 。它们可以简单地把 TestX 命名函数是每个包的一部分,然后go test发现它们。5 d7 {* U1 l, W1 q
随着 Go 1 发布,链接中推荐的结构在您的问题中有点过时。你不再需要了pkg在src. 只有 3个与规范相关的目录是 GOPATH 目录中的 3 : bin,pkg,src 。在 src 下面,您可以简单地放置您的项目mypack,下面是你所有的 .go 文件,包括 mypack_test.go4 l; _. P* q' a2 k4 h" h+ z% P
go build 然后构建到根级 pkg 和 bin 中。% y, q# L0 k- ^- S
所以你的 GOPATH 可能是这样的: 4 k& w0 R1 B+ D, x- r+ r* J7 V2 [
~/projects/ bin/ pkg/ src/ mypack/ foo.go bar.go mypack_test.goexport GOPATH=$HOME/projects$ go build mypack$ go test mypack 7 f3 {0 f7 Y/ j7 a5 G. L- e