登录
首页 >  Golang >  Go问答

使用包调用 go test 时输出的差异

来源:Golang技术栈

时间:2023-04-25 06:33:42 154浏览 收藏

哈喽!大家好,很高兴又见面了,我是golang学习网的一名作者,今天由我给大家带来一篇《使用包调用 go test 时输出的差异》,本文主要会讲到golang等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!

问题内容

我有一个glide用于包管理的 Go 项目。

我有一个使用 的测试套件设置godog,我go test使用(with format )的[文档](https://github.com/DATA- DOG/godog#running-godog-with-go- test)中TestMain描述的包装器运行它。[](https://github.com/DATA-DOG/godog#running-godog- with-go-test)godoc``pretty

由于我不想测试我正在销售的软件包,所以我将测试称为

go test $(glide novendor)

就我而言,该项目非常简单,glide novendor只返回一个.

现在我的 问题 是:为什么在运行时go test,我会得到很多漂亮的输出,列出场景和步骤等等,但是当我运行时,go test .我只会得到一个单行

ok      gitlab.knf.local/ngs/gpp        0.015s [no tests to run]

(即使我添加了一个虚拟测试,这也不会改变)。

正确答案

输出不同,因为这是 Go 工具的编写方式。这是有意的默认行为。

如果你只是在go test没有列出包的情况下运行,它将测试当前目录中的包:

默认情况下, go test 不需要参数。它使用当前目录中的源代码编译和测试包,包括测试,并运行测试。

如果您列出包go test(可能只是一个包或只是一个.,没关系),那么go test将测试所有列出的包。

如果您测试单个包,您希望查看每个测试的详细信息和结果。如果您测试多个包,通常您对每个单独测试的细节不感兴趣,因为这只会使您的屏幕混乱,并且当信息在您的屏幕中滚动时,您甚至不会注意到测试或包是否失败。在测试多个包时,通常您只对每个包的最终结果感兴趣。每个包一行是一个很好的折衷方案,并给出了明确的结果。

如果您在列出包时仍想看到更详细的输出,只需传递-v标志:

go test -v $(glide novendor)

有关更多详细信息和选项,请运行go help test和/或访问命令 go文档页面,特别是[测试包](https://golang.org/cmd/go/#hdr- Test_packages)和[测试标志说明](https://golang.org/cmd/go/#hdr- Description_of_testing_flags)部分。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>