Ubuntu システムに基づく Google テスト フレームワークを使用して Qt C++ 単体テストを作成するための詳細なチュートリアル

 C++ を使用して Ubuntu システム上で Qt 単体テストを実行したいのですが、どのようなオープンソース単体テスト ライブラリが利用可能ですか?

Ubuntu システムでは、複数の C++ 単体テスト フレームワークを使用して Qt 単体テストを作成できます。一般的なオープン ソース単体テスト ライブラリのいくつかを次に示します。

1. Google Test: Google が開発した C++ 単体テスト フレームワークで、強力でさまざまなテスト ケース、テスト スイート、アサーションをサポートしています。

2. Boost.Test: Boost Community によって開発された単体テスト フレームワークで、Boost C++ ライブラリをサポートし、スケーラブルで柔軟です。

3. Catch2: 豊富な機能を備え、使いやすく統合しやすい軽量の C++11 単体テスト フレームワーク。

4. QTestLib: Qt フレームワークの単体テストに適した、Qt 独自のテスト ツール。

5. CppUnit: オブジェクト指向設計と優れたカプセル化を備えた C++ 単体テスト フレームワークで、C++ アプリケーションを簡単にテストするためのさまざまなテスト ケースとテスト スイートを提供します。

どの単体テスト フレームワークを選択しても、対応するライブラリを使用してテスト駆動開発 (TDD) とテスト自動化を実装し、ソフトウェアの品質と信頼性を向上させることができます。

C++ を使用して ubuntu システム上で Qt 単体テストを実行したいのですが、一般的な単体テスト フレームワークを見つけて、詳しい使用方法のチュートリアルの例を教えてください。

C++ Qt 単体テストには一般的に使用されるテスト フレームワークが多数あり、その中で最も一般的なのは Google Test フレームワークです。以下は、Ubuntu システムに基づく Google テスト フレームワークを使用して Qt C++ 単体テストを作成するための詳細なチュートリアルです。

## 1. Google テスト フレームワークをインストールする

Ubuntu に Google テスト フレームワークをインストールするには、次のコマンドを使用できます。

```
sudo apt-get install libgtest-dev
```

上記のコマンドは、Google Test フレームワークのライブラリ ファイルとヘッダー ファイルを `/usr/src/gtest` ディレクトリにインストールします。

インストールが完了したら、`/usr/src/gtest` ディレクトリに切り替えて、ライブラリ ファイルをコンパイルします。

```
sudo apt-get install cmake # cmake コンパイル ツールをインストールします
cd /usr/src/gtest
sudo cmake CMakeLists.txt
sudo make # ライブラリ ファイルをコンパイルします
```

コンパイルが成功すると、対応するライブラリ ファイルが `/usr/lib` ディレクトリに生成されます。

## 2. Qt単体テストプロジェクトを作成する

Qt Creator で「MyTest」という名前の新しいコンソール アプリケーション プロジェクトを作成し、ターゲット ファイル タイプとして「Relaese」を選択し、プロジェクトの関連情報とパスを入力して、プロジェクトのルート ディレクトリのサブディレクトリに「test」という名前のプロジェクトを作成します。 、テストコードとテストデータを保存するために使用されます。

## 3. テストコードを書く

新しい C++ ファイル `mytest.cpp` を `test` ディレクトリに作成し、テスト コードを記述します。サンプルコードは次のとおりです。

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

TEST(MyTest, TestCase1)
{     EXPECT_EQ(2 + 2, 4); }

TEST(MyTest, TestCase2)
{     EXPECT_TRUE("hello" != "world"); } ```


テスト コードは 2 つのテスト ケースを作成し、2+2 が 4 に等しいという結果と文字列の比較をそれぞれテストします。

`TEST` マクロ定義は、テスト ケースを定義するために使用されます。テスト ケースには、テスト ケース名とテスト ケース名という 2 つのパラメーターがあります。「EXPECT_EQ」マクロ定義は 2 つの値が等しいかどうかをテストするために使用され、「EXPECT_TRUE」マクロ定義は式の結果が true かどうかをテストするために使用されます。

## 4. CMakeLists.txt ファイルを作成します

プロジェクトのルート ディレクトリに CMakeLists.txt ファイルを作成してテスト コードを構成およびコンパイルし、Google テスト フレームワーク ライブラリ ファイルをリンクします。サンプル コードは次のとおりです。

```cmake
cmake_minimum_required(バージョン 3.5)

プロジェクト(MyTest)

セット(CMAKE_CXX_STANDARD 11)

#Google テスト フレームワーク ライブラリ ファイル ディレクトリを追加
link_directories(/usr/lib)

#テストコードディレクトリを追加
add_executable(MyTest test/mytest.cpp)

# Google テスト フレームワーク ライブラリ ファイルへのリンク
target_link_libraries(MyTest pthread gtest)
````

このファイルは、プロジェクトの最小 CMake バージョンを構成し、C++ 標準バージョンを設定し、Google テスト フレームワーク ライブラリ ファイル パスをリンク パスに追加します。次に、テスト コード ディレクトリをコンパイル ターゲットに追加し、Google Test ライブラリ ファイルをリンクします (注: ライブラリ ファイルをリンクするときに `-pthread` パラメータを追加する必要があります)。

## 5. 単体テストをコンパイルして実行する

次のコマンドを使用してターミナル ウィンドウでプロジェクトのルート ディレクトリを入力し、「build」という名前のフォルダーを作成し、そのフォルダー内に Makefile を生成します。

```
mkdir ビルド
cd ビルド
cmake ../
```

Makefile を生成した後、make コマンドを使用してコンパイルします。

```
を作ります
```

コンパイルが完了したら、`MyTest` プログラムを実行すると、テスト結果が表示されます。

```
./MyTest
```

テスト結果はコンソールに出力され、すべてのテストケースが成功すると以下が出力されます。

> [==========] 1 つのテスト ケースから 2 つのテストを実行します。
> [----------] グローバル テスト環境のセットアップ。
> [----------] MyTest からの 2 つのテスト
> [ RUN ] MyTest.TestCase1
> [ OK ] MyTest.TestCase1 (0 ミリ秒)
> [ RUN ] MyTest.TestCase2
> [ OK ] MyTest.TestCase2 ( 0 ミリ秒)
> [----------] MyTest からの 2 つのテスト (合計 0 ミリ秒)

> [----------] グローバル テスト環境の破棄
> [=== =======] 1 つのテスト ケースから 2 つのテストが実行されました。(合計 0 ミリ秒)
> [ 合格 ] 2 つのテスト。

これで、Google Test フレームワークを使用して Ubuntu システムに基づいて Qt C++ 単体テストを作成するための詳細なチュートリアルが完了しました。

おすすめ

転載: blog.csdn.net/thanklife/article/details/130238122