C言語で自作したライブラリのユニットテストを行うべく、Google Testの導入を試みました。
Google TestはC/C++のテストフレームワークです。
Google TestはVisual Studio 2019のプロジェクトテンプレートとして既に存在しているので
Google Testのヘッダーファイル(gtest.h等)を使用することは容易なのですが、
Google Mockの導入で手こずったので解決方法を紹介します。
読み進まる前に
Google Test / Google Mockの導入方法としては
ソースコードをGitHubからダウンロードしてビルドして~~等のやり方もありますが、
今回の紹介方法は__Visual StudioのNuGetを使用してGoogle Mockを導入__する方法です。
Visual Studio上のみで完結させます。
導入環境
- OS
- OS Name : Microsoft Windows 10 Pro
- Version : 10.0.18363 Build 18363
- Microsoft Visual Studio 2019
- Version : 16.4.3
- Installed Version : Community
- NuGet Package Manager : 5.4.0
Google Test
前述したほうにGoogle Testは、Visual Studio 2019のプロジェクトテンプレートとして既に存在しているので
導入は簡単です。
プロジェクト作成からGoogle Testを選択して下さい。
細かい設定は今回割愛します。
Google Mock
インストール
NuGetからGoogle Mockパッケージをインストールしました。
Google Mockで検索するといくつかヒットします。
今回は、googlemock.v140.windesktop.static.rt-dyn
の1.7.0.1
をインストールしました。
インストール後、プロジェクトのコンフィグファイルは
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="googlemock" version="1.10.0" targetFramework="native" />
<package id="Microsoft.googletest.v140.windesktop.msvcstl.static.rt-dyn" version="1.8.1.3" targetFramework="native" />
</packages>
のようになるかと思います。
googlemock
が追加されているのが確認できます。
ファイル読み込み
インストール完了したので、Google Mockを使用するためにgmock/gmock.h
をインクルードしても場所が見つからないというエラーになりました。
試しにインストールしたGoogle Mockパッケージの場所(プロジェクトの場所\packages\googlemock.v140.windesktop.static.rt-dyn.1.7.0.1
)を見ると
include
下のディレクトリ名がgtest
となっていました。
gmock
じゃないの????
ってことでディレクトリ名をgtest
からgmock
に変更することで
無事にインクルード出来るようになりました(^ω^)