ユニットテスト

CLion は Google Test / Catch / Boost.Test / Doctest の各フレームワークを統合するため、ユニットテストを簡単に実行することができます。

テストの実行

CLionでは、通常の実行ファイルを実行するという、デフォルトなテストの実行方法があります。 ただし、組み込みのテストランナーを活用するために Google Test / Catch / Boost.Test / Doctest 向けの構成を利用できます。

テストの実行

CMakeターゲットがgtest、またはgmockでリンクされている場合、構成は自動的に作成されます。 あるいは、⌃⇧Rを押すことで単一のテスト、フィクスチャ、またはファイル全体を 実行することもできます。 さらに、こういう構成は、Run | Edit Configurations...の設定で手動で作成、および更新できます。

テストの実行

Catch構成の場合、テストのセットを絞り込むために、タグを使用し、タグ名の補完を活用しましょう。

Catch構成

テストランナー

結果の調査

使いやすく洗練されたユニットテストランナーによるテスト駆動開発を最大限にご活用ください。 ユニット テストランナーの専用ビューでは次のものが表示されます。

  • 現時点で完了しているテストの割合を表示するプログレスバー、
  • テストステータス、およびテストの長さを含む、全てのテスト実行のツリービュー、
  • 全てのテスト出力ストリームなど。

他に、CLionのテストランナーでは次のことができます。

  • 任意のテストや、全てのテスト、または全ての失敗したテストの再実行、
  • テスト結果をエクスポートして、自動的に保存される履歴にある前回の結果を開くこと、
  • Ctrl+↓を使用して、 特定のテストのソースコードに移動すること
実行/ステータスアイコン

実行/ステータスアイコン

左ガターにあるアイコンを使用して、テストの実行/デバッグ、またはValgrind Memcheckでの実行、および成功か失敗かというテストのステータスの確認ができます。

コードの生成

Code generation機能(Alt+Insert)は、ユニットテストの作成において 大いに役立ちます。 Google Test用には、テスト、テストフィクスチャの作成、またはSetUp/TearDownメソッドを生成します。

テストでのコード生成

フィクスチャ用にテストを生成する場合は、TEST()のマクロが、 該当の TEST_F()TEST_P()TYPED_TEST()、または TYPED_TEST_P()に変換されます。

テストでのコード生成
CTest のサポート

CTest のサポート

CMake 固有のテストランナーである CTest が CLion でサポートされています。 つまり、CTest で実行されるテストのリストが検出されると、その Run/Debug 構成が IDE によって自動的に作成されるようになりました。 テストが起動すると、結果が組み込みのテストランナーに提示され、そこからテストをデバッグして、失敗したテストのみを返すようにするなど、行えます。