CMake: CTEST_CUSTOM_TESTS_IGNOREを使ってテストを制御する方法

2024-04-12

CMake 変数 CTEST_CUSTOM_TESTS_IGNORE の詳細解説

CTEST_CUSTOM_TESTS_IGNORE は、CMake の ctest_test() コマンドで実行されるテストを制御するための変数です。これは、特定のテストをテスト実行から除外したい場合に役立ちます。

構文

set(CTEST_CUSTOM_TESTS_IGNORE <REGULAR_EXPRESSION_LIST>)

説明

  • <REGULAR_EXPRESSION_LIST> は、除外したいテストの名前を記述する正規表現のリストです。
  • 複数の正規表現をスペースで区切って指定できます。
  • テスト名は、テストファイル名とテスト名の組み合わせで構成されます。
  • 正規表現は、Perl Compatible Regular Expressions (PCRE) の形式を使用する必要があります。

set(CTEST_CUSTOM_TESTS_IGNORE "MyTest1.cpp" "MyTest2.cpp::failingTest")

この例では、以下のテストが ctest_test() コマンドで実行されません。

  • MyTest1.cpp ファイル内のすべてのテスト
  • MyTest2.cpp ファイル内の failingTest テスト

CTESTCustom ファイルの使用

CTEST_CUSTOM_TESTS_IGNORE 変数は、CMakeLists.txt ファイルだけでなく、CTESTCustom ファイルでも設定できます。CTESTCustom ファイルは、テスト実行のカスタマイズに使用できる特別な CMake ファイルです。

CTESTCustom ファイルで CTEST_CUSTOM_TESTS_IGNORE 変数を設定するには、以下の形式を使用します。

set(CTEST_CUSTOM_TESTS_IGNORE "MyTest1.cpp" "MyTest2.cpp::failingTest")

注意事項

  • CTEST_CUSTOM_TESTS_IGNORE 変数は、ctest_test() コマンドで実行されるテストのみを制御します。他のテスト実行コマンド (例: ctest) では影響を受けません。
  • CTEST_CUSTOM_TESTS_IGNORE 変数は、テストが実行される前に設定する必要があります。テスト実行後に設定しても、効果はありません。

補足

CTEST_CUSTOM_TESTS_IGNORE 変数は、テスト実行から特定のテストを除外したい場合に役立ちます。テストを無効化したい場合は、ctest_test() コマンドの EXCLUDE_TESTS オプションを使用する方が効率的な場合があります。

EXCLUDE_TESTS オプションは、テスト名を直接指定する点が CTEST_CUSTOM_TESTS_IGNORE 変数と異なり、正規表現を使用する必要がないため、よりシンプルです。

CTEST_CUSTOM_TESTS_IGNORE 変数は、CMake の ctest_test() コマンドで実行されるテストを制御するための便利なツールです。テスト実行から特定のテストを除外したい場合は、この変数を活用することをおすすめします。



ヒント

  • チュートリアルやドキュメントで分からないことがあれば、オンラインフォーラムやコミュニティで質問してみてください。
  • サンプルコードを実際に試して、自分の理解を深めましょう。
  • 積極的にコードを書いて、スキルを磨きましょう。

ご参考になれば幸いです。



If you are looking for other ways to do something, here are some possible questions you could ask:

  • How else can I achieve [goal]?
  • What are other approaches to [problem]?
  • Are there any alternative solutions to [issue]?
  • What are other methods for [task]?
  • What are different ways to do [activity]?

If you are looking for other information, here are some possible questions you could ask:

  • What are other resources on [topic]?
  • Are there any other perspectives on [issue]?
  • What are other examples of [concept]?
  • Are there any other related topics to [subject]?
  • What are other ways to learn about [topic]?

Please let me know if this is helpful or if you have any other questions.




CMake find_file() コマンドの代替方法:もっと柔軟なファイル検索

<variable>: 検索結果を格納する CMake 変数<file_names>: 検索するファイル名のリスト (スペース区切り)<path_list>: 検索するパス名のリスト (スペース区切り)<options>: 検索オプション (後述)



プログラミング初心者でもわかる!CMake の "set_directory_properties()" コマンドの使い方

set_directory_properties() コマンドは、CMakeプロジェクト内のディレクトリとサブディレクトリにプロパティを設定するために使用されます。これらのプロパティは、ビルドプロセス、インストール、その他の CMake 動作を制御するために使用できます。


CMakeにおける"get_target_property()"コマンド: ターゲットの情報を自在に操る

get_target_property()コマンドは、CMakeプロジェクトで定義されたターゲットからプロパティを取得するために使用されます。ターゲットプロパティは、ターゲットのビルド方法や動作を制御するために使用される情報です。構文引数VAR: ターゲットプロパティの値を格納する変数名


CMake include() で効率的なビルドを実現

include() は CMake の重要なコマンドの一つで、他の CMake ファイルやモジュールを読み込むために使用されます。 これにより、コードを分割し、再利用性と保守性を向上させることができます。機能他の CMake ファイルを読み込んで、その中のコマンドを実行する


CMakeコマンド mark_as_advanced() の詳細解説

mark_as_advanced() は、CMakeプロジェクトで特定のキャッシュ変数を "詳細設定" としてマークするために使用されるコマンドです。このコマンドによって、GUI ツールでこれらの変数はデフォルトでは表示されなくなり、ユーザーは "詳細設定" オプションを有効にするまで編集できなくなります。



CTest ダッシュボードクライアントスクリプトのベストプラクティス:CTEST_SUBMIT_INACTIVITY_TIMEOUT を含めた効率的な設定

設定方法:例:デフォルト値:CTEST_SUBMIT_INACTIVITY_TIMEOUT のデフォルト値は 300秒 (5分) です。詳細:CTest サーバーとの通信が途絶えた場合、クライアントは再接続を試みます。再接続の試行回数は CTEST_SUBMIT_MAX_RETRIES で設定できます。


CMake ポリシー CMP0060 とは?

CMake ポリシー CMP0060 は、CMake 3.3 で導入されたポリシーで、ライブラリのリンク方法に影響を与えます。このポリシーは、デフォルトで OLD 動作に設定されていますが、NEW 動作に変更することもできます。OLD 動作と NEW 動作の違い


CMakeの変数 CMAKE_BUILD_RPATH_USE_ORIGIN を使うべき?

CMAKE_BUILD_RPATH_USE_ORIGIN は、ビルドツリー内の共有ライブラリへの参照を相対パスで解決するかどうかを制御する CMake 変数です。これは、ビルドツリーを移動したり、異なる環境で実行したりする場合に、アプリケーションの再配置可能性と信頼性を向上させるのに役立ちます。


CMakeの「Properties: Targets」と「EchoString」マクロ:ターゲット情報表示の便利ツール

CMake の "Properties: Targets" における "EchoString" は、ターゲットに関連付けられた文字列を出力するために使用されるマクロです。これは、デバッグやビルドプロセスの情報表示に役立ちます。構文このマクロには、以下の引数があります。


IMPORTED_LINK_INTERFACE_LIBRARIES_CONFIG プロパティの代替方法:手動設定、外部ライブラリのCMakeファイル、CPack

IMPORTED_LINK_INTERFACE_LIBRARIES_CONFIG は、CMake のターゲットプロパティの一つで、外部ライブラリのコンフィギュレーション情報を指定するために使用されます。これは、IMPORTED_LINK_INTERFACE_LIBRARIES と併せて使用することで、外部ライブラリをプロジェクトに正しく統合するために必要な情報を提供します。