【Xcode/iOS】XCTestでテストカバレッジを計測する方法!

この記事からわかること
- SwiftのXCTestでテストカバレッジを計測する方法
index
[open]
\ アプリをリリースしました /
環境
- Xcode:16.3
- iOS:18.0
- Swift:5.9
- macOS:Sequoia 15.4
テストカバレッジとは?
「テストカバレッジ」とはテストがソースコードのどの程度を実行したかを示す指標です。実装されているコードに対してテストコードを通過している割合を数値として把握することができるので、テストがどこまで網羅しているかを把握することができます。
テストカバレッジは実際にそのコードがテストで実行されているかどうかが重要になります。例えば以下のような実装コードがあるとします。
そして以下のようなテストコードのみが実装されているとすると、テストカバレッジは100%になりません。これはreturn "Hello, Guest!"
側のコードが通っていないためです。
そのためelse
側のテストも追加するなど、テストで条件分岐のパターンなども網羅していくとテストカバレッジの値も上がっていきます。
Xcodeでテストカバレッジを計測する方法
Xcodeではテストカバレッジを計測することが可能です。カバレッジを計測するためのステップは以下の通りです。
- テストコードを導入
- 「Code Co Gather coverage for...」にチェックをいれる
- テストを実行
1.テストコードを導入
まずはテストコードを導入します。Xcodeでは「XCTest」と「Swift Testing」の2つの方法がありますが「Swift Testing」の方が新しく使い勝手も良いためおすすめです。テストコードの実装方法は以下の記事を参考にしてください。
2.「Code Co Gather coverage for...」にチェックをいれる
テストコードの実装が完了したらテストカバレッジを計測できるようにしていきます。カバレッジの計測設定はスキームごとに行います。「Edit Scheme...」から「Test」>「Code Co Gather coverage for...」にチェックをいれるだけです。

この際にカバレッジ計測対象のターゲットを選択することができるので「all targets」もしくは「some targets」を選択できます。「all targets」だとプロジェクト内の全てーのターゲット(ライブラリやフレームワークなど)も対象になってしまうため「some targets」で対象のターゲットを明示的に指定した方がカバレッジ率が把握しやすいです。
3.テストを実行
実際にカバレッジを確認するためにはまずテストを実行します。実行すると左側のナビゲータエリアの「Report Navigator(⌘9)」から「Coverage」が追加されていることを確認できます。ここをクリックするとターゲット内のファイルごとにテストカバレッジ率が表示されるようになります。

ファイルをクリックするとコードに飛ぶことができます。コードからは実行された箇所は緑色に、実行されていない箇所は赤色にハイライトされるので網羅できていない箇所を確認しながらテストコードを追加していけばOKです。

テストコードがないのにテストカバレッジ率に値が理由
テストコードを記述していないのにテストカバレッジ率に値があることがあります。これはどうやらテスト実行の際にアプリが起動すると思うのですがその際に実行されたコードもカバレッジに含まれるようです。
実際にテストコードはないですが、アプリが問題なく起動しているので動作的に問題ないという判断になっているのかもしれません。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。