كيفية قياس تغطية الاختبارات (code coverage) في Go؟
مرحبًا أيها الزملاء! لقد بدأت للتو في تعلم Go، وواجهت مشكلة في قياس تغطية الكود بالاختبارات. أكتب REST API صغيرًا باستخدام net/http، وأريد التأكد من أن اختباراتي تغطي جميع السيناريوهات الرئيسية.
إليك مثال على الكود الخاص بي:
```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`، لكنني لا أفهم كيفية استخدامه بشكل صحيح. رأيت أيضًا بعض ملفات التغطية (coverage profiles)، لكنها تبدو معقدة.
أرجو إرشادي كمبتدئ:
1. كيفية رؤية النسبة المئوية الإجمالية للتغطية فقط.
2. كيفية رؤية الأجزاء المحددة التي