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 以降に上げる。
何が起きるか(報告者の測定)
- 検証用の小さなコードで、手で数えて 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 接続が失敗しないかも確認する。
出典
- @tane_log · 2026-10-20
- Go Release History(go1.27.2 / go1.27.3): go.dev/doc/devel/release
- 参考(1.27.3 の証明書チェーンの変更): @yousukezan · 2026-10-21