Avatar ·

كيفية قياس تغطية الاختبارات (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. كيفية رؤية الأجزاء المحددة التي