Cppmap で紹介されていたC++用単体テストフレームワークであるCatchをVisual Studio 2019で使ってみたので、その導入に関するメモ。
はじめに
説明のために、Visual Studio 2019 (以下VS2019) で、空のプロジェクトを作成。整数を受け取り2倍の値を返す関数 int mul2(int)
を作る。
次に単体テストを実行するためのプロジェクトを追加で作成する。今回は、テスト用のプロジェクトの名前を TestProjectとした。
Catchの導入
TestProject以下に空のヘッダファイル catch.hpp
を作成する。
続いて、Catchの公式リポジトリ から、 single_include/catch2/catch.hpp
を見つけ、その中身を全コピーする。catch.hppは include
ディレクトリ以下にも存在するが、こちらではない。私はこれに気づかず時間を潰してしまった。
次にTestProject以下に Test.cpp
を作成し、以下を記述する。
#define CATCH_CONFIG_MAIN #include "catch.hpp"
これでCatchの導入完了。
単体テストの実行
TestProject以下に、最初に作成した mul2()
関数をテストするための testMul2.cpp
を作成する。
そこで catch.hpp
と、 mul2()
を実装したヘッダファイルをincludeする。
#include "catch.hpp" #include "../HelloCatch2/mul2.hpp"
あとは、適当にテストケースを書いて、TestProjectをスタートアッププロジェクトに指定してから実行すればOK。
もし、他に作成した関数について単体テストしたければ、TestProject以下にcppファイルを作成し、そこで #include "catch.hpp
すればよい。
毎回HelloCatch2プロジェクトで作成したヘッダファイルを参照パスで指定してincludeするのは面倒なので、TestProjectのアイコンを右クリックして VC++ディレクトリ->インクルードディレクトリ
から、HelloCatch2プロジェクトで作成するヘッダファイルを置くディレクトリを、インクルードパスに指定すると良い。