登录
首页 >  Golang >  Go问答

我如何找到哪些测试涵盖了特定的 Go 代码?

来源:stackoverflow

时间:2024-04-24 08:45:35 277浏览 收藏

各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题《我如何找到哪些测试涵盖了特定的 Go 代码?》,很明显是关于Golang的文章哈哈哈,其中内容主要会涉及到等等,如果能帮到你,觉得很不错的话,欢迎各位多多点评和分享!

问题内容

我试图弄清楚是否有办法查看哪些测试覆盖了我的 Go 代码中的函数。我正在与其他开发人员一起开发代码库,因此我没有自己编写所有测试/代码。

我看到一些函数被部分覆盖或几乎完全覆盖,但它们在任何地方都没有引用(在它自己的或其他包中),并且这些函数在任何测试中都不会直接调用。

有什么方法可以找到哪些测试涵盖了特定代码?当我试图寻找是否可能时,我得到的只是展示如何编写/运行测试并获取覆盖率/突出显示的文章,但没有任何内容实际表明它是否可能。

郑重声明,我在 Linux 上使用 VS Code 并在终端中运行 go test ./... -cover 以及 Ctrl+Shift+P ->“Go: Toggle Test Coverage In Current Package” 用于在 VS Code 中突出显示覆盖范围。


解决方案


现在通过评论可以看到更全面的情况,您似乎有一堆由缺乏 go 经验的人编写的测试,您的目标是清理测试以遵循标准的 go 约定。

如果我面临这个任务,我的策略可能是通过使用永远不会执行的构建标签来禁用存储库中的所有测试,例如:

// +build skip

package foo

通过运行 go test ./... -cover 确认所有测试均已禁用,并确认各处覆盖率均为 0%。

然后,逐个测试,我会将每个测试移动到适当的位置,并将其放入一个不带 skip 构建标记的新文件中。

如果这是一个大项目,我可能会一次执行一个包,或者执行其他一些小的、合乎逻辑的步骤,以避免出现巨大的拉取请求。在这里使用您自己的判断。

我也强烈抵制同时进行任何其他清理或修复的冲动。我的目标是让每个 pr 都成为简单的复制粘贴,因此审核很简单,并且我会保存我发现的其他清理工作的列表,以供以后执行。

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

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