本記事では、Eclipseとgcovを組み合わせて、C言語/C++のコードカバレッジを計測する方法をわかりやすく解説します。
ユニットテストの品質や、進捗状況の確認を行うのに、コートカバレッジは有益な情報の1つです。
C/C++の開発で広く採用されているEclipseと、C/C++用のコードカバレッジ測定ツールのgcovを組み合わせて、カバレッジ率を見てみましょう。
前提条件
すでにEclipseでユニットテストが行える状態になっていることを前提とします。まだ準備ができていない場合は、下記の記事を参考になさってください。
上記の記事はユニットテストツールとしてCppUTestを使っていますが、本記事はこれに限定せずにお話します。
gcovプラグインのインストール
ダウンロードサイトよりgcovのプラグインをインストールします。
- Help->Install New Software…
- Work with:から『Eclipse Repository – https://download.eclipse.org/releases/2019-03』を選択
(2019-03の部分はEclipseのバージョンによって異なります) - Linux Tools→GCov Integrationをインストールしてください
gcovを有効化
GCCのオプションを追加してgcovを有効化します。
- プロジェクトを右クリック→Properties
- C/C++ Build→Settings
- Tool Settingsタブ→GCC C++ Compiler→Debugging
- Generate gcov information (-ftest-coverage -fprofile-arcs)にチェックを入れる
- Tool Settingsタブ→GCC C Compiler→Debugging
- Generate gcov information (-ftest-coverage -fprofile-arcs)にチェックを入れる
(C++のみのプロジェクトであれば、ここは不要です)
ここで1度プロジェクトをビルドしてください。問題なければ次に進みましょう。
gcov用のProfileを追加
gcovを実行するProfileの設定を作成しましょう。Profileは聞きなれない機能かもしれません。これは『Run』や『Debug』と似た機能で、gcovなどのプロファイルを実行する時に使うものです。
- プロジェクトを右クリック→Profile As→Profile Configurations…
- C/C++ Applicationをダブルクリック
- Name:に適当な名前を入れましょう。ここでは『gcov_test profile』としました。
- Profilerタブのドロップボックスで『Gcov』を選択しましょう。他にプロファイル機能のプラグインを入れてないのであれば、Gcovが勝手に選択されます。
- 入力が終わったら『Apply』ボタンを押して『Close』ボタンで閉じてください。
gcovの実行
実行の時です。
実行する方法は2通りあります。お好みの方法を選んでください。
- プロジェクトを右クリック→Profile As→『gcov_test profile』をクリック
- デバッグボタン(虫マーク)の隣にあるプロファイルボタンをクリック
上記のような画像が表示されれば成功です。
エディタ上のソースコードが色分けされます。緑色がユニットテストで実行されたコードを示しています。この画像にはありませんが、たくさん実行された行は色の濃い緑色になります。赤色は1度も実行されていないコードを示しています。
画面下部のgcovタブには、カバレッジ率がまとめられます。
ちなみに、色分けを消したい時は、プロジェクトをクリーンするか、コードを編集するとできます。
以上です。お疲れ様でした!