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文件包含所有测试运行的总覆盖率