Первый инструмент — goleak от Uber, ставишь defer goleak.VerifyNone(t) и он поймает незакрытые горутины. Второй — runtime.NumGoroutine() до и после теста, сравниваешь. Третий — go test -v смотришь что тест висит (не завершается). Часто причина — незакрытый канал или забытый context cancel.
Как находить goroutine leaks в тестах?
Middle
211 просмотровAFK Offer AI
Как реализовать Iterator в Go?