この記事はGo2 Advent Calendar 2017の8日目の記事です。 とある日、GAE/Goで書いたアプリのテストがなぜか途中で固まり、強制終了しないと戻ってこない現象に遭遇しました。 今回の記事は、その調査と原因をまとめたものです。 tl;dr Goのテストはパッケージ毎に並列で動き、すべての終了を待機する。 テストプロセスの子プロセスがpanicするとそのテストは終了を検知できない。 テスト、一生おわらない! 解決策はみつけられませんでした。 実行環境 macOS Sierra 10.12.6 $ gcloud version Google Cloud SDK 180.0.1 app-engine-go app-engine-python 1.9.63 $ goapp version go version 1.8.3 (appengine-1.9.63) darwin/amd