Xcodeのコードカバレッジ計測ではなぜブランチカバレッジが取れないのだろうか? by kariad

iOSDC Japan 2019
採択
2019/09/06 13:30〜
Track B
レギュラートーク(30分)

Xcodeのコードカバレッジ計測ではなぜブランチカバレッジが取れないのだろうか?

kariad_uu kariad kariad_uu

テストコードを書いている場合、コードカバレッジを計測しているチームが多いのではないでしょうか。
私たちはXcodeの機能を使えば簡単にコードカバレッジを計測することが可能です。

一方でコードカバレッジにはいくつか種類があり、Xcodeではその一つであるステートメントカバレッジしか計測できないということをご存知でしょうか。
カバレッジの種類によりどこまで厳密網羅されているかが変わってきます。
その中でも分岐の網羅までチェックするものがブランチカバレッジと呼ばれます。

お隣を見渡せばAndroidのJaCoCoではブランチカバレッジも計測することができます。

ではなぜ私たちの扱うXcodeではブランチカバレッジを計測することができないのでしょうか?
そもそもSwiftでブランチカバレッジを計測することができないのでしょうか?

本トークではそんなXcodeでのコードカバレッジ計測でブランチカバレッジを計測できない理由はなぜなのか、本当に計測することができないのか。
それをSwiftのカバレッジ計測の仕組みから解き明かしていきます。