Focus On Programming

組み込みエンジニアで主にC言語、時々C#をやっている人の技術メモです。最近はAndroidも少しずつ勉強中

MacOSにCppUTestをインストールする

 

はじめに

本記事はC/C++用のxUnit系テストフレームワークである
CppUTestをMacOSにインストールする備忘録です。
CppUTestについてはこちらに詳細が記載されているので省略します。

インストール

CppUTestをインストールするための手順を次に記載します。

1. 次のコマンドでCppUTestをインストールする。

コマンド

> brew install cpputest

2. 次のエラーが出たので、次のコマンドを実行する。

エラー

Error: The following directories are not writable by your user:
/usr/local/include

You should change the ownership of these directories to your user.
  sudo chown -R $(whoami) /usr/local/include

コマンド

> sudo chown -R $(whoami) /usr/local/include

3. 次のコマンドでCppUTestをインストールしたパスを確認する。

コマンド

❯ brew --prefix cpputest
/usr/local/Cellar/cpputest/3.8

サンプル

CppUTestを使った最も簡単サンプルを次に記載します。

1. テストを記述する

test_runner.cpp

#include "CppUTest/CommandLineTestRunner.h"
#include "CppUTest/TestHarness.h"

TEST_GROUP(FirstTestGroup)
{
};

TEST(FirstTestGroup, FirstTest)
{
    STRCMP_EQUAL("first", "first")
}

TEST(FirstTestGroup, SecondTest)
{
    STRCMP_EQUAL("second", "second")
}

int main(int ac, char** av)
{
   return CommandLineTestRunner::RunAllTests(ac, av);
}

2. Makefileを記述する

makefile

CPP          = g++ -std=c++11
CFLAGS       =
INCLUDE      =
LIBPATH      =
LIBS         =
SOURCE       = test_runner.cpp
PROGRAM      = test_runner

CPPUTEST_HOME = /usr/local/Cellar/cpputest/3.8
INCLUDE  += -I$(CPPUTEST_HOME)/include/CppUTest/
INCLUDE  += -I$(CPPUTEST_HOME)/include/CppUTestExt/
LIBPATH  += -L$(CPPUTEST_HOME)/lib
LIBS     += -lCppUTest -lCppUTestExt -lpthread

ALL: 
    $(CPP) $(CFLAGS) $(INCLUDE) $(LIBS) $(SOURCE) -o $(PROGRAM)

clean:
    rm $(PROGRAM)

3. makeして、テストプログラムを実行する

❯ make
❯ ./test_runner
..
OK (2 tests, 2 ran, 2 checks, 0 ignored, 0 filtered out, 0 ms)

おわりに

これでとりあえずCPPUTestが使えるようになりました。
あとはリファレンス見ながらTest MacrosやらAssertionを学ぶ必要があると思う。
とりあえず本記事ではここまで…