كيفية تعطيل التخزين المؤقت للاختبارات في Go وإعادة تشغيلها قسرًا؟
مرحبًا بالجميع! لقد بدأت في تعلم Go وأكتب اختبارات لمشروعي. لاحظت سلوكًا غريبًا: عندما أقوم بتشغيل الاختبارات عدة مرات متتالية باستخدام `go test`، بعد التشغيل الأول تبدأ في التنفيذ فورًا، حتى لو قمت بتغيير الكود المصدري أو الاختبارات. في الإخراج أرى `(cached)` وهذا يربكني.
مثال: لدي اختبار بسيط:
```go
package main
import "testing"
func TestAddition(t *testing.T) {
result := 2 + 2
if result != 5 { // تعمدت جعل خطأ
t.Errorf("2 + 2 = %d, want 5", result)
}
}
```
أقوم بتشغيله أول مرة — يفشل الاختبار كما هو متوقع. أصلح `5` إلى `4`، وأعيد التشغيل — لكن الاختبار لا يزال يظهر النتيجة القديمة مع الخطأ! فقط بعد `go clean -testcache` أو إضافة العلم `-count=1` صراحةً يتم إعادة تشغيل الاختبار.
لماذا يقوم Go بتخزين نتائج الاختبارات مؤقتًا؟ كيف يمكن تعطيل هذا التخزين المؤقت بشكل صحيح بحيث يتم دائمًا إعادة تشغيل الاختبارات؟ هل هناك طريقة لضبط هذا عالميًا أو فقط لاختبارات محددة؟