登录
首页 >  Golang >  Go问答

在项目根目录下执行子文件夹的性能测试

来源:stackoverflow

时间:2024-02-28 10:57:24 212浏览 收藏

欢迎各位小伙伴来到golang学习网,相聚于此都是缘哈哈哈!今天我给大家带来《在项目根目录下执行子文件夹的性能测试》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!

问题内容

我有一个带有二进制文件的项目,其入口点位于./cmd//main.go。 我在 ./cmd//main_test.go 中添加了一个基准测试。

现在我想从存储库根目录执行此基准测试。 我尝试以各种交替方式执行类似 go test -bench=./cmd//main 的内容(例如 go test -bench=./cmd//main_test.go> 或 go test -bench =./cmd/) 但我无法让它工作。

我总是遇到的错误是:

无法加载包:包github.com//:/home//go/src/github.com//中没有Go文件

确实如此,我的项目根目录中没有 *.g​​o 文件。

我想到的就是首先更改到目录并使用“go test -bench=”运行基准测试。

但是,由于我的程序取决于当前工作目录,并且结果在很大程度上取决于能够在 cmd/ 目录之外的另一个目录中执行它会很棒。 (这是否好不是问题的一部分:))

第一条评论后更新:

我让它通过 go test -bench= 运行。 /cmd/ 但执行基准测试就像在 ./cmd/ 目录中运行一样。 我在“正常测试”中注意到了类似的行为 - 但这对我来说任何时候都不是问题。

因此,我的程序确实会根据当前工作目录扫描当前目录中的文件目录,这会导致仅找到两个文件(main.gomain_test.go),其中基准测试并没有真正的帮助。


解决方案


因此运行基准测试:

go test -bench=. ./cmd/

但是,您想要控制工作目录,因此您确实想从其他地方运行它。您正在寻找的是 -c 标志。它将创建一个二进制文件而不是运行测试。然后,您可以在您想要的位置运行二进制文件(以及您的测试和基准)。

go test -c ./cmd/my_proj
my_proj.test -test.bench=.

注意:编译测试时,标志以 test. 为前缀。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

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