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

如何检测GO中分离文件夹的代码覆盖率?,go,code-coverage,Go,Code Coverage,我的项目结构 stuff/stuff.go->package:stuff test/stuff/stuff\u test.go->package:test 虽然stuff_测试执行stuff.go中的代码,但它显示 覆盖率:0.0%的报表 我曾经 go测试-封面 如果我移动我的*_test.go到程序的stuff文件夹,它工作正常。 或者也许我的项目结构方法设计得不好/go-conform?传统的go程序结构将测试与包一起保存。像这样: project |-stuff |--stuff.go

我的项目结构
stuff/stuff.go->package:stuff

test/stuff/stuff\u test.go->package:test

虽然stuff_测试执行stuff.go中的代码,但它显示
覆盖率:0.0%的报表


我曾经
go测试-封面

如果我移动我的*_test.go到程序的stuff文件夹,它工作正常。

或者也许我的项目结构方法设计得不好/go-conform?

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

project
|-stuff
|--stuff.go
|--stuff_test.go
在测试文件的顶部,您仍然声明了
package stuff
,如果希望
go test
自动运行测试方法,则要求您的测试方法采用
TestMethodX
的形式


有关详细信息,请参阅Go docs:

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

有关这方面的悠久历史,请参阅。请参阅,以获取执行合并的示例工具。还有。我建立了自己的版本,所以我没有尝试过任何一个,但我确信它们都像我的一样工作,我的工作很好


我的感觉是,这只是一个没有人为之编写真正引人注目的变更列表的问题,对于核心维护人员来说也没有那么重要,所以它没有得到解决。它确实会引发一些可能会破坏现有测试的小问题,因此对我们大多数人有效的快速黑客攻击并没有被接受。但我没有看到任何讨论表明核心维护人员积极反对此功能。

你能为你的工具Rob发布一个链接吗?@Rick-777 Mine是一个与我们的构建系统集成的内部工具(具有硬编码路径和逻辑)。我考虑过让它通用化并出版它;不会有那么多工作。但是在这个领域已经有了其他的好工具,所以真的不太需要另外一个。