如何在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,它将运行良好。

还是我的项目结构方法设计得不好/不符合要求?

回答:

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

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

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

以上是 如何在GO中检测分离文件夹的代码覆盖率? 的全部内容, 来源链接: utcz.com/qa/399489.html

回到顶部