为了账号安全,请及时绑定邮箱和手机立即绑定

如何运行所有 Golang 基准测试,包括子文件夹

如何运行所有 Golang 基准测试,包括子文件夹

Go
慕码人2483693 2022-10-31 15:48:46
我有一个 Go 应用程序,在根目录和名为“message”的子文件夹中都有许多单元和基准测试。我执行以下命令从根目录运行所有单元测试,包括消息和任何其他子文件夹中的单元测试:go test ./...我想为基准测试实现相同的目标,即全部运行它们。以下适用于根目录中的那些:go test -bench ./messages 文件夹中的基准测试被忽略,这是预期的。所以我从根目录运行以下命令:go test -bench ./...这根本无法识别,Go 似乎执行了位于根目录中的单元测试。我什至尝试在命令中指定消息文件夹,如下所示:go test -bench ./message...但它也失败了。目前,如果我想在消息文件夹中运行基准测试,我必须 cd 进入该文件夹并执行go test -bench .像上面一样。那么正确的方法是什么呢?如何告诉 Go 在根文件夹和子文件夹中查找基准测试?在 -bench 标志的情况下,正则表达式 arg 如何工作?显然它与单元测试运行器的正则表达式不同。
查看完整描述

2 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

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

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


查看完整回答
反对 回复 2022-10-31
?
largeQ

TA贡献2039条经验 获得超7个赞

-benchflag采用正则表达式,以便-bench .在所有包中运行所有基准测试 ( ):go test -bench=. ./...



查看完整回答
反对 回复 2022-10-31
  • 2 回答
  • 0 关注
  • 92 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信