报告对 testing.T.FailNow 和位于测试文件 goroutine 中的类似方法的调用。

FailNow 这种方法会调用 runtime.Goexit,并停止调用 goroutine,而不是测试。 因此,必须仅从运行测试或基准的 goroutine 中调用。

有关 FailNow 的更多信息,请参见 golang.org 的 func (*T) FailNow

示例:

func TestFoo(t *testing.T) {
  go func() {
    t.Fatal("oops") // 退出 goroutine,而不是 TestFoo
  }()
}

在应用替换为 'Error' 和 'return' 快速修复后:

func TestFoo(t *testing.T) {
  go func() {
    t.Error("oops")
    return
  }()
}