当前位置: 首页 > 面试题库 >

子目录中的Golang测试

凌照
2023-03-14
问题内容

我想在Go中创建一个带有测试和示例的包作为子目录,以保持工作区的整洁。这有可能吗?

所有文档总是将测试代码与其他代码放在同一位置,这在某种程度上还是惯例上更好?


问题答案:

请注意,您 可以go test “递归” 运行:您需要 列出要测试的所有软件包

如果您位于Go项目的根文件夹中,请键入:

go test ./...

./...”符号在“ 命令 ” 的“
软件包列表说明 ”
部分中进行了描述:go

如果导入路径包含一个或多个...通配符,则通配符是一种模式,每个通配符都可以匹配任何字符串,包括空字符串和包含斜杠的字符串。

这样的模式将扩展到GOPATH名称与模式匹配的树中找到的所有软件包目录。

作为特殊情况,x/...匹配xx的子目录。
例如,net/...扩展到net并将其打包在其子目录中。

如果将_test.go文件保存在子文件夹中,则“ go test ./...”命令将能够提取它们。
但:

  • 您需要为导出的变量和函数(在测试中使用的)加上包名称的前缀,以便测试文件能够访问包导出的内容。
  • 您将不会访问未导出的内容。

话虽这么说,我仍然希望将_test.go文件保留在主源文件旁边:更容易找到。



 类似资料:
  • 问题内容: 我在Go中为我的应用程序编写了一些单元测试。但是,测试失败,因为它找不到配置文件。通常,二进制文件会在路径下的工作目录中查找配置文件。 我认为浏览到包含该目录并在其中运行的目录可以解决该问题,但是它仍然报告文件系统找不到指定的路径。 我如何知道使用某个目录作为工作目录,以便可以实际执行测试? 问题答案: 您可能可以使用调用方来获取当前测试源文件的路径,如下所示:

  • 我有一个Gradle多项目构建,看起来像这样: 我希望将目录< code>shared中的所有项目作为依赖项添加到< code>plugins中的所有项目。 更一般地说:我如何按目录配置子项目? settings.gradle的内容: build.gradle的内容:

  • 我从特定目录下的Stackoverflow使用通配符子域获取源代码 原始代码: 它可以正常工作,但上面的代码指向根目录。我希望所有子域都指向我的“公文包”目录中的目录,所以我尝试修改自己的代码 修改后(添加"/投资组合"): 但它给了我“500-内部服务器错误”。。。为什么?有人能纠正我的密码吗? 对我的英语表示感谢和歉意。

  • 当文档很多时,那么,你需要用到 子目录 了。 根目录下 index.rst 加入 modelList/index ;在目录中,index.rst 文件,可以写为 源码 模块列表 ---------- .. toctree:: :glob: :titlesonly: * 引入 rst 文件 警告 这里是 引入的 rst 文件。 源码 .. hea

  • 问题内容: 我有这个main.go文件: 我有这个目录结构: 当我使用以下命令构建项目时: 我收到此编译错误: src / main / main.go:3:8:/ home / oleg / codes / oresoftware / oredoc / test / builds / go / src / one / entities / bar中没有Go文件 该错误是有道理的。有什么方法可以从