登录
首页 >  Golang >  Go问答

如何执行包含子文件夹中所有 Golang 基准测试

来源:stackoverflow

时间:2024-03-07 14:39:25 332浏览 收藏

golang学习网今天将给大家带来《如何执行包含子文件夹中所有 Golang 基准测试》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!

问题内容

我有一个 go 应用程序,在根目录和名为“message”的子文件夹中包含许多单元和基准测试。

我执行以下命令从根运行所有单元测试,包括消息和任何其他子文件夹中的单元测试:

go test ./...

我想在基准测试中实现相同的目标,即运行所有测试。以下内容适用于根目录中的内容:

go test -bench .

/messages 文件夹中的基准测试将被忽略,这是预期的。所以我从根目录运行以下命令:

go test -bench ./...

这根本无法识别,go 似乎执行位于根目录中的单元测试。我什至尝试在命令中指定消息文件夹,如下所示:

go test -bench ./message

...但也失败了。目前,如果我想在消息文件夹中运行基准测试,我必须 cd 进入该文件夹并执行

go test -bench .

像上面一样。

那么正确的做法是什么呢?我如何告诉 go 在根文件夹和子文件夹中查找基准测试?在 -bench 标志的情况下,正则表达式 arg 如何工作?显然它与单元测试运行程序的正则表达式不同。


正确答案


您应该使用 ./... 来测试当前工作目录及其所有子目录中的所有文件。如果您希望获得更详细的输出,可以使用 -v 标志。另外,最好使用 -benchmem 列出内存分配。

go test -v ./... -bench=. -run=xxx -benchmem

-bench flag 采用正则表达式来运行所有包中的所有基准测试 (-bench .):go test -bench=。 ./...

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

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