如何让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` 而不会重新执行测试。我知道这是因为缓存,但我需要