小编典典

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

go

我的项目结构
stuff/stuff.go -> package: stuff
test/stuff/stuff_test.go -> package: test
尽管stuff_test是从stuff.go执行代码的,但它表明
coverage: 0.0% of statements

我使用了 go test -cover
如果我将* _test.go移至程序的stuff-folder,它将运行良好。
还是我的项目结构方法设计得不好/不符合要求?


阅读 386

收藏
2020-07-02

共1个答案

小编典典

不直接支持跨包测试覆盖率,但是有几个人构建了包装程序以合并各个覆盖率配置文件。

有关此问题的悠久历史,请参见问题#6909。并查看gotestcover以获取进行合并的示例工具。还有gocovmerge。我构建了自己的版本,因此没有尝试过任何版本,但是我确信它们都可以像我的一样工作,并且我的工作正常。

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

2020-07-02