CTest
CTest(英語) は、CMake の一部として配布されているテスト自動化ツールです。
CTest の実行 / デバッグ構成
CTest を使用するプロジェクトを開くと、CLion はテストを検出し、それらの実行 / デバッグ構成を自動的に作成します。この構成はすべてのテストと呼ばれ、CTest アプリケーションテンプレートに基づいています。
ダイアログで、自動的に作成された構成を編集し、同じタイプの構成をさらに追加できます。
![CTests 用に自動的に作成された構成 The automatically created configuration for CTests](https://resources.jetbrains.com/help/img/idea/2024.1/cl_ctest_alltests_config.png)
CTest 構成を作成する
メインメニューで、
に移動し、をクリックして、テンプレートのリストから CTest アプリケーションを選択します。
構成名を入力し、設定を指定します。
実行するテストリストフィールドで、含めるテストを選択します。利用可能なテストのリスト内でスマート検索を使用すると、ナビゲーションが簡単になります。
CLion は、使用している ctest のバージョンが 3.14 未満の場合、またはプロジェクトでテストが検出されなかった場合に通知します。
この場合、CMakeLists.txt ファイルで CTest テストが有効になっていることを確認してください。
の CMake のバージョンを確認し、CTest 引数フィールドでは、追加のフラグを指定できます。例: テストでサポートされている場合は、
--parallel
を指定してテストを並行して実行します。
CTest テストを起動する
テストを実行またはデバッグするには、次のいずれかのオプションを使用します。
スイッチャーで構成を選択し、ツールバーアイコンのいずれかをクリックするか、対応するショートカットを使用します。
CMakeLists.txt ファイルを開き、目的のテストに対応する
add_test
コマンドを見つけます。その横にある左側のガターアイコンをクリックして、オプションのリストから選択します。ガターアイコンを使用してテストを実行すると、CLion は一時的な CTest アプリケーション構成を作成します。これは構成のリストではグレー表示されます。保存するには、 ダイアログでそれを選択し、
を押します。
CTest テストのデバッグ
CTest テストのデバッグセッションを開始すると、CLion は、ctest 子プロセスを起動する代わりに、デバッグ中にテスト自体を実行します。
マルチテスト構成の場合、リストから単一のテストを選択するように求められます。
動的解析
テストに動的分析ツールを使用して、実行時の問題を排除できます。CLion は Valgrind Memcheck、Google Sanitizers、CPU プロファイラ、コードカバレッジと統合し、結果の操作に役立つ視覚化された出力と便利な機能を提供します。詳細については、対応する記事を参照してください。
結果を調べる
テストを実行すると、CLion は組み込みのテストランナーウィンドウに結果とプロセスを表示します。このウィンドウには次のものが含まれます。
これまでに実行されたテストの割合を示す進捗バー
実行中のすべてのテストのステータスと期間を含むツリービュー
コンソール出力ストリーム
失敗した
テストを再実行する、
をエクスポートする、
で自動的に保存された以前の結果を開く、特定のテストを簡単に見つけるために
のアルファベット順に並べ替える、または
の期間で並べ替えて、どのテストが他のテストよりも長く実行されたかを理解するオプションを備えたツールバー
テストが宣言されている CMakeLists.txt ファイルに移動するソースに移動などのアクションを含むコンテキストメニュー。
テストをスキップする
特定の場合、CTest はテストの失敗を無視できます。これを構成するには、SKIP_RETURN_CODE(英語) または SKIP_REGULAR_EXPRESSION(英語) プロパティを設定します。CLion はこれらのプロパティを検出し、出力ツリーでテストをスキップ済みとしてマークします。
関連ページ:
![](https://resources.jetbrains.com/help/img/idea/2024.1/cl_ctest_config_testlist.png)
CTest アプリケーション
このページを使用して、CTest テストの実行 / デバッグオプションを構成します。共通設定:実行構成を編集するとき(ただし実行構成テンプレートは編集しないとき)、次のオプションを指定できます。名前実行構成の名前を指定して、編集または実行時に他の構成の間ですばやく識別できるようにします。複数のインスタンスを許可するこの実行構成の複数のインスタンスを並行して実行できるようにします。デフォルトでは無効になっており、別のインスタンスがまだ実行されているときにこの構成を開始すると、CLion は実行中の...
![](https://resources.jetbrains.com/help/img/idea/2024.1/cl_rdconfigslist_temporary.png)
実行 / デバッグ構成
CLion は、実行 / デバッグ構成を使用して、コードを実行、デバッグ、テストします。各構成は、何を実行し、どのパラメーターと環境を使用するかを定義する、名前付きのスタートアッププロパティのセットです。実行 / デバッグ構成には 2 つのタイプがあります。一時的 — テスト、テストスイート、フィクスチャ、エントリを実行 / デバッグするたびに作成され、ガターアイコン / を使用します。永続的 — テンプレートから明示的に作成されるか、一時的な構成を保存することによって作成されます。永続的な構成は、削除...
![](https://resources.jetbrains.com/help/img/idea/2024.1/cl_valgrindSettings.png)
Valgrind の memcheck
Valgrind Memcheck は、リーク、無効なメモリアクセス、不正なメモリリリース、未定義の値参照などのメモリ使用の問題を検出するツールです。CLion の Valgrind 統合は、Linux、macOS、WSL を備えた Windows で動作します (WSL 上の Valgrind を参照)。Valgrind を設定するシステムに Valgrind をインストールします。CLion で、に移動します。CLion は、システムで設定されている Valgrind バイナリを検出しようとしま...
![](https://resources.jetbrains.com/help/img/idea/2024.1/cl_sanitizers_settings.png)
Google サニタイザー
Sanitizers は Google が設計した動的コード分析用のオープンソースツールです: CLion は次の Sanitizers と統合されます。AddressSanitizer (ASan)、LeakSanitizer (LSan)、ThreadSanitizer (TSan)、UndefinedBehaviorSanitizer (UBSsan)、MemorySanitizer (MSan)、Sanitizers は、3.1 以降の Clang および 4.8 以降の GCC に実装さ...
![](https://resources.jetbrains.com/help/img/idea/2024.1/cl_attachwithprofiler.png)
プロファイラー
CLion の CPU プロファイラー統合により、アプリケーション(カーネルとユーザーのコードの両方)について収集されたパフォーマンスのメトリックを分析できます。プロファイラは Linux と macOS で利用でき、実装は Perf および DTrace ツールに基づいています。Perf と DTrace は、固定レートでのサンプリングを使用して、アプリケーションを中断し、プログラムカウンターとスタックトレースを収集します。これらは、プロファイリングレポートに変換されます。このようなレポートは長く、分析が難...
![](https://resources.jetbrains.com/help/img/idea/2024.1/cl_coverage_addedprofile.png)
コードカバレッジ
CLion では、コードカバレッジ測定を使用して CMake アプリケーションとテストを実行できます。コードカバレッジの結果には、実行中に実行されたコード行の割合と、特定の行がヒットされた回数が示されます。CLion は、llvm-cov/gcov 統合に依存して、コードカバレッジデータを収集および表示します。これらのツールには特別なカバレッジコンパイラーフラグが必要です。これは手動で渡すか、CLion に自動的に追加させることができます。カバレッジのある CMake アプリケーションまたはテスト...