我有一个Go项目,我正在使用glide
进行包管理。
我使用godog
进行了测试套件设置,我使用go test
包装器运行TestMain
,如godoc
pretty
中所述格式go test $(glide novendor)
)。
由于我不想测试我正在销售的包,我用
调用测试glide novendor
就我而言,项目非常简单,.
只返回go test
现在我的问题是:为什么在运行go test .
时,我会得到很多漂亮的输出,列出方案和步骤等等,但是当我运行{{1}时我只是得到一个单行
ok gitlab.knf.local/ngs/gpp 0.015s [no tests to run]
(即使我添加了虚拟测试,这也不会改变。)
答案 0 :(得分:2)
输出不同,因为这是Go工具的编写方式。这是故意的默认行为。
如果您只运行go test
而不列出软件包,它将在当前目录中测试软件包:
默认情况下,go test不需要参数。它在当前目录中编译和测试包含源的包,包括测试,并运行测试。
如果您将软件包列为go test
(可能只是一个软件包或仅.
,无关紧要),那么go test
将测试所有列出的软件包。
如果您测试单个包,则需要查看每个测试的详细信息和结果。如果您测试多个软件包,通常您对每个单独测试的细节不感兴趣,因为这会使您的屏幕变得杂乱,并且当信息滚动到您的屏幕时,您甚至不会注意到测试或软件包是否失败。在测试多个软件包时,通常您只对每个软件包的最终结果感兴趣。每个包装一行是一个很好的折衷方案,并给出了明确的结果。
如果您仍希望在列出软件包时看到更详细的输出,只需传递-v
标志:
go test -v $(glide novendor)
有关详细信息和选项,请运行go help test
和/或访问Command go文档页面,特别是Test packages和Description of testing flags部分。