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

如何检测GO中分离文件夹的代码覆盖率?

如何检测GO中分离文件夹的代码覆盖率?

Go
ABOUTYOU 2021-12-06 15:01:09
我的项目结构stuff/stuff.go -> package: stufftest/stuff/stuff_test.go -> package: test虽然 stuff_test 从 stuff.go 执行代码,但它显示coverage: 0.0% of statements我使用了 go test -cover如果我将 *_test.go 移动到程序的东西文件夹,它工作正常。或者也许我的项目结构方法设计得不好/不符合?
查看完整描述

2 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

传统的 Go 程序结构将测试与包保持在一起。像这样:


project

|-stuff

|--stuff.go

|--stuff_test.go

在您的测试文件的顶部,您仍然声明package stuff,并且TestMethodX如果您想go test自动运行它们,则需要您的测试方法采用这种形式。


有关详细信息,请参阅 Go 文档:https : //golang.org/pkg/testing/


查看完整回答
反对 回复 2021-12-06
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

不直接支持跨包测试覆盖率,但有几个人已经构建了包装器来合并各个覆盖率配置文件。

有关这方面的悠久历史,请参阅问题 #6909。并参阅gotestcover获取用于进行合并的示例工具。还有gocovmerge。我构建了自己的版本,所以我还没有尝试过任何这些,但我确信它们都像我的一样工作,而且我的工作正常。

我的感觉是,这只是一个没有人为之编写真正引人注目的变更列表的问题,并且对核心维护者而言并不那么重要,因此尚未解决。它确实提出了一些可能会破坏现有测试的极端情况,因此对我们大多数人有效的快速黑客并没有被原样接受。但是我没有看到任何讨论表明核心维护者积极反对这个功能。


查看完整回答
反对 回复 2021-12-06
  • 2 回答
  • 0 关注
  • 210 浏览
慕课专栏
更多

添加回答

举报

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