Avatar ·

如何在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. 如何查看具体哪些代码被覆盖了。