ユニットテスト

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 によって自動的に作成されるようになりました。テストが起動すると、結果が組み込みのテストランナーに提示され、そこからテストをデバッグして、失敗したテストのみを返すようにするなど、行えます。