1
2

WSL 上で gtest を動かしてみる

Last updated at Posted at 2024-03-28

概要

WSL 上で GoogleTest を用いて、サンプルプログラムをテストする際の手順を記載する
ファイルの操作、コマンドの実行には VSCode を用いる

前提

  • VSCode がインストールされていること
  • WSL がインストールされていること
  • WSL 上に gtest がインストールされていること
    WSL に gtest をインストールする手順は下記

gtest 実施手順

VSCode で WSL に接続する

VSCode を開き、左下の >< をクリック
image.png

"WSL への接続" をクリック
image.png

左下の表示が "WSL: Ubuntu" になれば接続完了
image.png

サンプルコードの作成

VSCode の左上のアイコンをクリックして、"フォルダーを開く" をクリック
image.png

任意のディレクトリパスを入力して、"OK" をクリック
image.png

VSCode のエクスプローラー上で右クリックして、"新しいファイル..." を選択
image.png

以下の3ファイルを作成する

sample.c
#include "sample.h"

int add( int a, int b ) {
    return a + b;
}
sample.h
#ifndef SAMPLE_H_
#define SAMPLE_H_

int add( int a, int b );

#endif  /* SAMPLE_H_ */
gtest_sample.cpp
#include <gtest/gtest.h>
#include "sample.h"

TEST( test_add, case_1_plus_2 ){
    EXPECT_EQ( 3, add( 1, 2 ) );
}

gtest のビルドと実行

"ターミナル" タブから "新しいターミナル" を選択
image.png

cd コマンドで、先ほどファイルを作成したディレクトリに移動する
image.png

以下のコマンドを実行し、ビルドを行う

g++ sample.c gtest_sample.cpp -o test -g -pthread -lgtest_main -lgtest

成功した場合、test が作成される
image.png

以下のコマンドを実行し、test を起動する

./test

成功した場合、以下のように表示される
image.png

サンプルコードの解説

sample.c について

(言うまでもないことだが、)add() は 引数 a, b を加算して返却する関数である。

gtest_sample.cpp について

TEST() マクロを用いてテストケースを作成している。
TEST() マクロを使用するためには、gtest/gtest.h をインクルードする必要がある。
TEST() マクロの第一引数は テストスイート名、第二引数はテストケース名として扱われる。
また、EXPECT_**() マクロはアサーションである。
今回使用している EXPECT_EQ() マクロは2つの引数が等しいか比較するアサーションであり、全てのアサーションが真である場合は、そのテストケースが成功しているとログに表示される。
いずれかのアサーションが偽の場合は、そのテストケースが失敗しているとログに表示される。
image.png

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2