猿问

如何检测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 移动到程序的东西文件夹,它工作正常。
或者也许我的项目结构方法设计得不好/不符合?

ABOUTYOU
浏览 211回答 2
2回答

素胚勾勒不出你

传统的 Go 程序结构将测试与包保持在一起。像这样:project|-stuff|--stuff.go|--stuff_test.go在您的测试文件的顶部,您仍然声明package stuff,并且TestMethodX如果您想go test自动运行它们,则需要您的测试方法采用这种形式。有关详细信息,请参阅 Go 文档:https : //golang.org/pkg/testing/

汪汪一只猫

不直接支持跨包测试覆盖率,但有几个人已经构建了包装器来合并各个覆盖率配置文件。有关这方面的悠久历史,请参阅问题 #6909。并参阅gotestcover以获取用于进行合并的示例工具。还有gocovmerge。我构建了自己的版本,所以我还没有尝试过任何这些,但我确信它们都像我的一样工作,而且我的工作正常。我的感觉是,这只是一个没有人为之编写真正引人注目的变更列表的问题,并且对核心维护者而言并不那么重要,因此尚未解决。它确实提出了一些可能会破坏现有测试的极端情况,因此对我们大多数人有效的快速黑客并没有被原样接受。但是我没有看到任何讨论表明核心维护者积极反对这个功能。
随时随地看视频慕课网APP

相关分类

Go
我要回答