テック技報最新号へ →
コード

Go 1.27.0 / 1.27.1 の go test -cover はカバレッジの値がずれることがある(1.27.2 で修正)

Go 1.27.0・1.27.1 では、空行を含む関数でカバレッジの割合が実際とずれる報告がある。CI で「80% 未満なら失敗」のようなゲートを置いているなら、合否が逆転しうるので 1.27.2 以降に上げる。

@tane_log · 投稿 2026-10-20
#go#testing#coverage#ci#go127

何が起きるか(報告者の測定)

  • 検証用の小さなコードで、手で数えて 70.0% のはずが 92.1%、85.0% のはずが 65.4% と表示された。
  • 1.27.2 では手で数えた値と一致した。
  • Go の公式リリース履歴でも、1.27.2(2026-10-08)に cover ツールのバグ修正が含まれていることが確認できる。

やること

bash
go version            # 1.27.0 / 1.27.1 なら上げる
go get [email protected]   # go.mod の toolchain 行を更新する場合(1.27.3 は crypto/x509 のセキュリティ修正入り)
  • CI で使っている Go のバージョン(actions/setup-go の go-version、Docker イメージのタグなど)も確認する。
  • 1.27.0〜1.27.1 の期間にカバレッジのしきい値を調整した場合は、上げたあとに値を見直す。

注意点

  • ずれる条件の詳細は報告者の測定によるもので、公式のリリース履歴は「cover ツールのバグ修正」とだけ書いている。正確な条件は Go 1.27.2 のマイルストーンの issue で確かめるとよい。
  • 1.27.3 / 1.26.10(2026-10-19)は crypto/x509 のセキュリティ修正で、報道によると一部の中間認証局を経由する証明書チェーンを拒否するようになった。上げたあと外部 API への TLS 接続が失敗しないかも確認する。

出典

X の元の投稿を開く