我有一个这样的项目:
app/
api/
foo.go
test_foo.go
src/
db/
bar.go
Run Code Online (Sandbox Code Playgroud)
在 中foo.go,对 中的函数进行调用bar.go。但是,在运行覆盖率报告时,它显示 bar.go 的 0 行被覆盖。
有没有办法让覆盖范围包括对其他包的函数调用?
就我而言,我并不想为单独的测试db和api,因为通过所有的呼叫db将总是通过api,这将是多余写两个测试。
我正在运行这样的覆盖范围:
go clean -testcache
go test -coverprofile=coverage.out ./...
go tool cover -html=coverage.out
Run Code Online (Sandbox Code Playgroud)
Iai*_*can 13
您需要包含该coverpkg标志,以便:
go test -coverpkg=./... coverprofile=coverage.out ./...
Run Code Online (Sandbox Code Playgroud)
将计算您所有包裹的承保范围。
https://golang.org/cmd/go/#hdr-Testing_flags