我的项目结构 stuff/stuff.go -> package: stuff test/stuff/stuff_test.go -> package: test 尽管stuff_test是从stuff.go执行代码的,但它表明 coverage: 0.0% of statements
stuff/stuff.go -> package: stuff
test/stuff/stuff_test.go -> package: test
coverage: 0.0% of statements
我使用了 go test -cover 如果我将* _test.go移至程序的stuff-folder,它将运行良好。 还是我的项目结构方法设计得不好/不符合要求?
go test -cover
不直接支持跨包测试覆盖率,但是有几个人构建了包装程序以合并各个覆盖率配置文件。
有关此问题的悠久历史,请参见问题#6909。并查看gotestcover以获取进行合并的示例工具。还有gocovmerge。我构建了自己的版本,因此没有尝试过任何版本,但是我确信它们都可以像我的一样工作,并且我的工作正常。
我的感觉是,这只是一个问题,没有人为它编写过真正引人注目的变更列表,并且对核心维护者没有那么重要,因此没有得到解决。它确实提出了可能会破坏现有测试的极端情况,因此,对我们大多数人有效的快速hack并没有被接受。但是我没有看到任何建议表明核心维护者积极反对此功能。