Windowsでのカバレッジ測定
OpenCppCoverageを使ってみた(2)
どもです。
前回のエントリーで、OpenCppCoverageというカバレッジを測定する、フリーのツールを紹介しました。
その際に、ツールの「惜しいところ」ということで「日本語が文字化けする」ということを書きました。
調べてみると、これを解決(解消?)する方法があることが分かりました。
そこで今回は、この「解決(解消?)」の方法について書きます。
1.解決方法
OpenCppCoverageは、コマンドライン上で実行するツールとは別に、VisualStudioのプラグインが公開されています。
このプラグインを適用することで、VisualStudio上でOpenCppCoverageを実行し、VisualStudioのエディタ上に結果を表示できるようになります。
したがって、「日本語が文字化けする」ことなく、カバレッジを表示できるようになります。
なお、今回のエントリでは、以下の環境で作業を行っています。
CPU | i7-8700 CPU 3.20GHz |
---|---|
メモリ | 16.0GB |
OS | Windows 10 Pro バージョン:1903 |
IDE | Visual StudioCommunity 2019 Version 16.3.9 |
2.ツールの入手
VisualStudioのMarketPlaceからインストーラを取得します。
画面上の「Download」ボタンをクリックすると、インストーラが取得できます。
3.インストール
ダウンロード後、ファイルをダブルクリックしてインストールします。
これで、インストールは完了です。
4.実行
インストールが完了したら、単体テストのプロジェクトをVisualStudioで起動します。
起動後、単体テストプロジェクトにおいて、OpenCppCoveragePluginの設定を行います。
ソリューションエクスプローラで右クリックして、コンテキストメニューから「OpenCppCoverage Settings」を選択します。
表示された「Settings」ダイアログにおいて、各種設定を行います。
まず、「Selected Porjects:」において、単体テストのプロジェクトのチェックを有効にします。
次に、「Program to run:」に、単体テストの実行ファイルのパスを設定します。
設定が完了したら、画面右下の「Run Coverage」をクリックします。
すると、単体テストが実行されます。
5.結果の確認
単体テスト実行後、テスト対象の任意のファイルを開くと、テストされている/されていないパスが、それぞれ色付けされた状態で表示されます。
このとき、日本語も文字化けすることなく表示されます。
また、各ファイルのカバレッジについても、確認することができます。
6.まとめ
今回は、前回のエントリで挙げた課題の1つである「文字化け」について解決する方法を記載しました。
これにより、テストされている/されていないパスを、文字化けすることなく確認ができるようになります。
文字化けがないと、やっぱりコードが見易いですね。
今回のエントリでは、VisualStudioにOpenCppCoverageのプラグインを導入することで、「日本語の文字化け」を解決する方法について記載しました。
プラグインの導入により、コマンドラインを起動して、OpenCppCoverageを実行して、結果を確認して、という一連の手順まで全てVisualStudio上で実行できるようになりました。
結果の出力についても、設定画面の「Import/Export」タブの「ExportTypePath」を設定することで、実行と同時に出力できるようになります。
しかし、出力されるレポート(HTML形式)では、文字化けは解決できていませんでした。
やっぱり、最終的なレポートの出力については、OpenCppCoverage本体の更新に期待するしかないのかなぁ…。
ではっ!
ディスカッション
コメント一覧
はじめまして。JTと申します。
質問があります。差し支えなければ教えてください。
OpenCppCoverageを初めて使用しています。またVisualStudioのテスト機能についても初使用です。
OpenCppCoverageとVisualStudioのテスト機能については環境も整いある程度使い方を習得しました。
OpenCppCoverageの設定でProgram to run:に実行ファイル(EXE)を指定する必要があると思います。
ですが私の単体テストプロジェクトではDLLが出力されるためOpenCppCoverageには指定することができません。
DLLではなくEXEにする努力をしましたがそうすると単体テストが実施できなくなってしまいます。
参考までにCountrySideEngineerさんはどのようにして単体テストプロジェクトを作成しているか教えていただけないでしょうか?
私の環境を以下に記載します。
******************
VisualStudio 2017 Pro
Windows10 Pro
テストプロジェクトの作成方法:ネイティブ単体テストプロジェクトを使用しています
******************
コメントありがとうございます。
質問に回答いたします。
テストプロジェクトは、「コンソールアプリ」を使用して作成しています。
エントリ本文中に記載はありませんが、テストフレームワークにはGoogleTestを使用しています。
この組み合わせであれば実行ファイル(.exe)が生成されますので、OpenCppCoverageによるカバレッジの測定が可能です。
「ネイティブ単体テストプロジェクト」に比べて、いくつか設定が必要ですが、カバレッジ測定が目的であれば、この選択も可能かと思います。
VisualStudioには、Google Testを使用した単体テストプロジェクトのテンプレートも用意されていますので、コチラも併せて使用してみるのもよいのではないでしょうか。
JTです。
回答ありがとうございます。
オフライン環境での環境構築でしたのでCMakeを使用してみましたがうまくいかず。。。
別案としてVisualStudioの最新オフラインインストーラを作成しGoogleTestのテストプロジェクト
テンプレートを作成できるようにしたところGoogleTestを使用することができるようになりました。
実行ファイル形式(.exe)が生成されるようになりましたので無事カバレッジを取得できるようになりました。
ありがとうございました!!