我正在创建一个项目。由于项目存储库的根目录已经有很多东西(doc,README.md ...),因此我希望所有源代码都放在src文件夹中,而所有测试代码都放在名为的文件夹中测试:
\go
\src
\github.com
\user
\my_project
\src
main.go
some_func.go
\test
test_main.go
test_some_func.go
\doc
README.md
但是我有两个问题:
我希望所有源代码都放在src文件夹中,所有测试代码都在名为test的文件夹中:
Go具有一种组织源代码的方式。不要打这个。这就是系统的工作方式。按照Go希望的方式组织代码。不要试图以您学到的其他语言来强迫Go工作。每种语言都有自己的处理方式。它们都不是“正确的”。像Java一样,Go对应该执行的操作也有非常具体的想法。那样做。(这不是关于Go是“正确”还是Go是“错误”的争论。Go是Go,它以Go的方式进行操作。)
特别是,您不应创建另一个“ src”目录。“ go”树的顶部已经有一个“ src”目录。如果创建另一个冗余的“ src”目录,则项目的软件包名称为“ github.com/user/my_project/src”,这可能不是您想要的。
若要将可执行文件命名为所需名称,请将其放置在名为所需名称的目录中(可能是“ my_project”)。将测试文件与他们测试的文件放在一起。这就是go的工作方式。
因此,您的树应如下所示:
\go
\src
\github.com
\user
\my_project
main.go
some_func.go
main_test.go
some_func_test.go
\doc
README.md
尝试执行除此以外的其他操作将一遍又一遍地进行,并且“如何使构建系统执行此其他操作”的问题将不断返回“以构建系统期望的方式输入您的代码”。
有关Go期望的内容以及如何组织代码的详细信息,请参阅Command Go文档中的GOPATH环境变量。以这种方式构建系统一段时间后,您将开始看到可以从中偏离的位置(例如为测试实用程序创建其他目录,而不是为测试用例创建目录)。在尝试了标准Go方式之前,不要开始偏离。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句