我知道在运行单元测试时可以捕获代码覆盖率指标。但是,当我们针对二进制文件本身进行集成测试(复数)时,我们想知道覆盖范围是什么,例如:
go build ./mybin somefile1 ./mybin somefile2 # ... test a bunch more files and input flags
是否有可能做到这一点?可以仅为测试目的而构建二进制文件,因此可以根据需要选择任何编译选项。
Go Coverage工具只能与测试包一起使用。但是,并非所有希望都消失了。
如果您可以将集成测试强制到go测试框架中,那么您应该拥有所需的一切。这不应该听起来那么难。
基本上:
编写一个main()在go例程中执行您的功能的测试文件:
main()
func TestMainApp(t *testing.T) { go main() // .. then start your integration tests
}
在测试中运行真实应用程序的情况下,可以通过exec.Cmd帮助启动集成测试。
收集您的承保范围统计信息。
利润。
一年前,这篇名为Go with external tests的文章概述了一种类似的方法。