1. ホーム
  2. testing

[解決済み] CMake + makeで1つのテストだけを実行する

2022-02-05 07:41:21

質問

自分のプロジェクトにたくさんのテストがある場合、それらを実行することができます。 cmake イングと make で、構築する。 make test .

しかし、1つのテストだけを実行したい場合はどうでしょうか?つまり、そのうちのひとつは私が add_test() テストに CMakeFile.txt ?

解決方法は?

tl;dr - こうしてください。

cd $YOUR_BUILD_DIRECTORY
ctest -R name_of_your_test

説明

以下は、あなたが混乱する可能性が高い方法です。

  1. で行おうとしていましたね。 make というのは make test は、あなたに代わってすべてのテストを実行します。これは単一のテストでは動作しません (回避策はあります - @danger89 の 回答 ). ctest は、クロスプラットフォームで行う方法です。

  2. を使い始めたんですね。 ctest を、例えばメインプロジェクトのディレクトリで実行し、おそらく次のようなものを得たことでしょう。

     *********************************
     No test configuration file found!
     *********************************
     Usage
    
       ctest [options]
    
    

    というのは、参考にならなかった。

  3. ... それで、あなたはこう思ったのです。 ctest には -C スイッチは、CMake や GNU Make" のように、実際に -C スイッチ!しかし、それはあなたが期待するようなものではありませんでした。

     [joeuser:/home/joeuser/src/myproj]$ ctest -C build
     Test project /home/joeuser/src/myproj
     No tests were found!!!
    
    

実際に必要なこと

  cd $YOUR_BUILD_DIRECTORY
  ctest -R name_of_your_test

(ただし -R は正規表現にマッチします)。これでうまくいくはずです。なお リスト を渡すことで、実際にテストを実行するのではなく、実行するテストを指定することができます。 -N から ctest .


<サブ 正しい方向性を示してくれた@RTsyvarevに感謝します