如何在Go中测量测试覆盖率(code coverage)?
大家好!我刚入门Go,遇到了测量代码测试覆盖率的问题。我正在用net/http写一个小型REST API,想确保我的测试覆盖了所有主要场景。
以下是我的代码示例:
```go
package main
import (
"net/http"
"testing"
)
func handler(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello, World!"))
}
func TestHandler(t *testing.T) {
req, _ := http.NewRequest("GET", "/", nil)
rr := httptest.NewRecorder()
handler(rr, req)
if rr.Code != http.StatusOK {
t.Errorf("expected 200, got %d", rr.Code)
}
}
```
我通过`go test`运行测试,但如何知道测试覆盖了百分之多少的代码?文档中提到了`-cover`标志,但我不明白如何正确使用它。我还看到一些覆盖率配置文件,但它们看起来很复杂。
请给新手指点一下:
1. 如何简单地查看总体覆盖率百分比。
2. 如何查看具体哪些代码被覆盖了。