2022/05/25

GoogleTestのインストール

  C言語のコードテストには、GoogleTestを使っています。

 コードの単体テストはCUnitなどいろいろありますが、GoogleTestを使う最たる理由はGMockの存在があります。
 GMockは簡単に言うと、モック関数を簡単に作れるというところになります。
 CUnitなどではモック関数を、引数のチェック・動作の切り替えを全部用意しなくてはなりませんが、GMockはとても簡単にこれらのことができます。

 今回からしばらくは、GoogleTestの使い方について書いていきます。

●今回の環境

 Windows10上のWSL2のubuntu22.04で作業していきます。


●インストール手順

手順1:GoogleTestのソースコードをダウンロード

 GoogleTestのソースをダウンロードします。
 ダウンロード方法は2通りあり、aptを使う方法と、githubからダウンロードする方法があります。

・aptでダウンロード

$ sudo apt install googletest

 → /usr/src の下に、googletestディレクトリができる

 aptでは、ソースコードがダウンロードされるだけで、ビルド・インストールを自分で行う必要があります。

・githubからダウンロード

$ wget https://github.com/google/googletest/archive/refs/tags/release-1.11.0.tar.gz

 →現在のディレクトリに release-1.11.0.zip ファイルができる

 githubからダウンロードした場合は、解凍する必要があります

$ tar xvzf release-1.11.0.tar.gz

 →現在のディレクトリに、googletestディレクトリができる


 使い分けとしては、システム全体で共用したい場合はaptで、プロジェクトごとにバージョンを分けたい・独立させたいときは、githubからダウンロードするようにするとよいでしょう。


手順2:ビルド

 cmakeでGoogleTestをビルドします。
 cmakeがインストールされていない場合は、cmakeをインストールします。

$ sudo apt install cmake

 解凍したGoogleTestのディレクトリに入る。
  aptを使った場合 → /usr/src/googletest ディレクトリ
  githubからダウンロードした場合 → 解凍した場所にある googletestディレクトリ

 ビルド・インストールする。

$ cmake .
$ make
$ sudo make install

 →/usr/local/install の下に gtest と gmock のディレクトリができる
 →/usr/local/lib の下に libgmock.a libgmock_main.a libgtest.a libgtest_main.a ができる

※cmake で -DCMAKE_INSTALL_PREFIX=(path) オプションを与えてインストール先を変えることも可能

以上でインストール完了です。

●インストールの確認

 適当なディレクトリで、以下のファイルを用意してください。

test.cpp
#include <gtest/gtest.h>

TEST(ABC, abc)
{
}

 ビルドします。

$ g++ test.cpp -o test -lgtest -lgtest_main -lpthread

 → test 実行ファイルができる

 実行します。

 このような表示になれば、インストールが正常にできています。


 GoogleTestはC++のテストフレームワークですが、Cもテストできます。
 主にC言語での使い方を記載していきます。