Go覆盖范围不包括其他包中的功能
我有一个这样的项目:Go覆盖范围不包括其他包中的功能,go,Go,我有一个这样的项目: app/ api/ foo.go test_foo.go src/ db/ bar.go go clean -testcache go test -coverprofile=coverage.out ./... go tool cover -html=coverage.out 在foo.go中,调用bar.go中的函数。但是,当运行覆盖率报告时,它显示0行bar.go被覆盖 有没有一种方法可以覆盖其他包的函
app/
api/
foo.go
test_foo.go
src/
db/
bar.go
go clean -testcache
go test -coverprofile=coverage.out ./...
go tool cover -html=coverage.out
在foo.go
中,调用bar.go
中的函数。但是,当运行覆盖率报告时,它显示0行bar.go被覆盖
有没有一种方法可以覆盖其他包的函数调用
在我的例子中,我不想对db
和api
进行单独的测试,因为通过db
的所有调用都将始终通过api
,编写两个测试是多余的
我的报道是这样的:
app/
api/
foo.go
test_foo.go
src/
db/
bar.go
go clean -testcache
go test -coverprofile=coverage.out ./...
go tool cover -html=coverage.out
您需要包括
coverpkg
标志,以便:
go test -coverpkg=./... coverprofile=coverage.out ./...
会计算你所有包裹的保险范围
可能与我运行此命令时重复,它说我的
bar.go
文件在命令行中的覆盖率为0%。然而,当我打开HTML时,bar.go的覆盖率大于0%。是的,就是这样!命令行打印的内容是,当运行API测试时,所有包的覆盖率是多少,然后当运行db测试(即无测试)时,所有包的覆盖率是多少。然后,html文件包含所有测试运行的总覆盖率