登录
首页 >  Golang >  Go问答

如何从 Go 二进制文件中捕获代码覆盖率?

来源:Golang技术栈

时间:2023-05-03 20:49:55 191浏览 收藏

哈喽!今天心血来潮给大家带来了《如何从 Go 二进制文件中捕获代码覆盖率?》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到golang,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!

问题内容

我知道在运行单元测试时可以捕获代码覆盖率指标。但是,当我们对二进制文件本身运行集成测试(复数)时,我们想知道覆盖率是多少,例如:

go build
./mybin somefile1
./mybin somefile2
# ... test a bunch more files and input flags

是否有可能做到这一点?可以仅出于测试目的构建二进制文件,因此可以根据需要进行任何编译选项。

正确答案

Go 覆盖率工具仅与测试包一起使用。但并不是所有的希望都消失了。

如果您可以将集成测试强制到 go 测试框架中,那么您应该拥有所需的一切。这不应该像听起来那么难。

基本上:

  1. main()编写一个在 go 例程中执行函数的测试文件:

    func TestMainApp(t *testing.T) { go main() // .. then start your integration tests }

  2. 从测试中运行您的真实应用程序,开始您的集成测试 - 可能在exec.Cmd的帮助下。

  3. 收集您的覆盖率统计数据。

  4. 利润。

这篇文章,[Go coverage with external tests](https://blog.cloudflare.com/go- coverage-with-external-tests/),从一年前开始,概述了一种类似的方法。

今天关于《如何从 Go 二进制文件中捕获代码覆盖率?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

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