Ant*_*tov 18 testing code-coverage go test-coverage
我正在尝试用来go test -cover衡量我正在建设的服务的测试覆盖率.它是一个REST API,我通过旋转它来测试它,发出测试HTTP请求并查看HTTP响应.这些测试不是服务包的一部分,并go tool cover返回0%的测试覆盖率.有没有办法获得实际的测试覆盖率?我希望在给定端点上进行最佳案例测试,以覆盖特定端点处理程序的至少30-50%的代码,并通过添加更多常见错误测试来进一步改进.
Ant*_*tov 14
我指出了这个-coverpkg指令,它做了我需要的 - 测量特定包中的测试覆盖率,即使使用这个包而不是它的一部分的测试.例如:
$ go test -cover -coverpkg mypackage ./src/api/...
ok /api 0.190s coverage: 50.8% of statements in mypackage
ok /api/mypackage 0.022s coverage: 0.7% of statements in mypackage
Run Code Online (Sandbox Code Playgroud)
相比
$ go test -cover ./src/api/...
ok /api 0.191s coverage: 71.0% of statements
ok /api/mypackage 0.023s coverage: 0.7% of statements
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我进行了测试,main_test.go其中package main正在使用package mypackage.我最感兴趣的是覆盖范围,package mypackage因为它包含项目中99%的业务逻辑.
我是Go的新手,所以很可能这不是通过集成测试来衡量测试覆盖率的最佳方法.