Avatar ·

كيفية جعل Go يعيد تشغيل الاختبارات وتعطيل التخزين المؤقت للنتائج؟

مرحباً بالجميع! لقد بدأت للتو في تعلم Go وواجهت مشكلة غريبة جداً عند كتابة الاختبارات. لدي حزمة بسيطة تحتوي على دالة تعيد الوقت الحالي. كتبت اختباراً يتحقق من أن الدالة تعيد وقتاً قريباً من الوقت الحالي. إليك الكود الخاص بي: ```go // timeutils.go package timeutils import "time" func GetCurrentTime() time.Time { return time.Now() } ``` ```go // timeutils_test.go package timeutils import ( "testing" "time" ) func TestGetCurrentTime(t *testing.T) { now := time.Now() result := GetCurrentTime() diff := result.Sub(now) if diff > time.Second || diff < -time.Second { t.Errorf("GetCurrentTime() = %v, want time close to %v", result, now) } } ``` المشكلة هي أنه عندما أقوم بتشغيل الاختبارات باستخدام `go test`، فإنها تعمل بشكل طبيعي فقط في المرة الأولى. في عمليات التشغيل اللاحقة، يقول Go ببساطة `ok` ولا يعيد تنفيذ الاختبارات. أفهم أن هذا بسبب التخزين المؤقت، لكنني أحتاج