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

为了正确使用软件包,如何安排目录,文件名,单元测试文件?

齐鸿光
2023-03-14
问题内容

我的源文件树是这样的:

/src
  /pkg
    /foo
      foo.go
      foo_test.go

内部foo.go

package foo

func bar(n int) {
    ...
}

内部foo_test.go

package foo

func testBar(t *testing.T) {
    bar(10)
    ...
}

我的问题是:

  1. 软件包名称与目录名称,源文件名称相关吗?
  2. 如果软件包只有一个源文件,是否需要将其放在目录中?
  3. 我应该foo.gofoo_test.go放在同一包装中吗?
  4. 在中foo_test.go,因为它与相同foo.go,所以我没有导入foo。但是当我foo_test.go用6g html" target="_blank">编译时,它说bar() is undefined。我该怎么办?

问题答案:

1-语言规范指出:

共享相同PackageName的一组文件构成了一个包的实现。一个实现可能要求包的所有源文件都驻留在同一目录中。

因此,似乎对文件/目录的命名没有要求,但是将构成一个包的所有文件放在一个目录中会更安全。

2-显然,该文件必须位于某个目录中。我假设您的意思是“ 我应该将其放在src的子目录中 吗?”
根据以上引用,在我看来,src如果您确实愿意,可以直接将所有文件都放入。

3-是的

4-使用 go test



 类似资料:
  • 问题内容: 这是问题所在 我有一个require.txt看起来像: 我有一个本地存档目录,其中包含所有软件包和其他软件包。 我创建了一个新的virtualenv 激活它后,我尝试根据本地存档目录中的requirements.txt安装软件包。 我得到一些输出,似乎表明安装正常 但是后来检查发现没有正确安装该软件包。我无法导入软件包,但在virtualenv的site-packages目录中找不到任

  • 问题内容: 我在Go中看到了几种不同的测试包命名策略,并想知道每种策略的优缺点以及应该使用哪种优缺点。 策略一: 文件名:github.com/user/myfunc.go 测试文件名称:github.com/user/myfunc_test.go 有关示例,请参见bzip2。 策略2: 文件名:github.com/user/myfunc.go 测试文件名称:github.com/user/my

  • If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. — Gerald Weinberg 在本章中,我们将学习如下内容: 为配置文件添加配置行 使用 Augeas 自动修改配置文件 使用

  • 问题内容: 我最近正在研究的程序中的一个常见任务是以某种方式修改文本文件。(嘿,我在Linux上。所有内容都是一个文件。我进行大规模的系统管理。) 但是代码修改的文件可能不存在于我的桌面盒中。而且,如果它在我的桌面上,我可能不想修改它。 我已经了解了Dive Into Python中的单元测试,并且很清楚我在测试将十进制转换为罗马数字的应用程序时想要做的事情(DintoP中的示例)。测试是完全独立

  • 我是单元测试新手,我只想测试位于特定目录中的文件 如何指定只对特定目录上的文件运行测试,而忽略其他文件 所以我通过npm安装了jest 并在package.json中指定了测试命令 上面运行的所有文件,但我希望它运行的文件在一个特定的目录,例如 我要怎么进行