問題タブ [ctest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1779 参照

c++ - CMake と CTest: テストの依存関係を自動的に実行する

私の CMakeLists.txt には、次のようなものがあります。

testXそして、何らかの方法で実行し、そのすべての依存関係を自動的に実行したいと考えています。何かのようなもの:

その結果、CTest が実行さtextYtestZますtestX。これを行う方法はありますか?

または、現在不可能である場合、依存関係に関する情報を CMake ビルド ディレクトリからスクリプトで抽出する方法はありますか?

0 投票する
1 に答える
402 参照

c++ - Valgrind は KDevelop の CTest で作業ディレクトリを変更します

Ctest を使用して Helgrind でテストを開始しています。

ただし、テストの作業ディレクトリは /usr/bin のようです。以下を指定する場合でも:

これは私が推測するデフォルトであるべきです。たとえば、memcheck を使用すると機能します。

テストは KDevelop から開始されます。

0 投票する
1 に答える
188 参照

boost - Boost.Tests: main の代わりに関数名を指定する

cmake ビルド システムを使用してプロジェクトに取り組んでいます。デフォルトでは、CMake には一連の C/C++ コードから単一の実行可能ファイルを生成するための優れたフレームワークがあります。cmake 関数はcreate_test_sourcelistと呼ばれます。これが行うことは、他の C/C++ コードを呼び出す単一のメイン エントリ ポイントを持つ C/C++ ディスパッチャを生成することです。

したがって、次のような関数シグネチャを持つ C/C++ ファイルがたくさんあります:int TestFunctionality1(int argc, char *argv[])もちろん、さらに作業が増えることを意味しない限り、そのままにしておきたいと思います。

このシステムを維持し、使用を開始するにはどうすればよいBOOST_CHECKですか? 実際のメイン エントリ ポイントが呼び出されないことを指定する方法がわかりませんでしたint main(int argc, char *argv[])

私の目標は、Jenkins と統合するためのフレームワークを用意することです。このプロジェクトでは既に Boost を使用しているため、既存の CMake テスト スイートを書き直したり、すべてのテストを独立したmain関数に変更したりすることなく、これを実行できるはずです。

0 投票する
2 に答える
1573 参照

unit-testing - CMake と CTest のデフォルトの「test」コマンドは、特別な名前のテストをスキップします

CMake で CTest を使用していくつかのテストを実行しています。enable_testing()のデフォルト コマンドを提供するコマンドを使用しますmake test。私のサブディレクトリ内のすべてのテストは (add_testコマンドを実行することによって)説明されmake test、1 つの問題を除いてうまく機能します。

という名前の特定のテストがありますが、skip_test実行するときに実行したくないものですmake test。カスタムターゲットを追加して実行できるようにしたいと思いますmake skip_test。そのテストが実行されます。

これを行うにはadd_custom_target(skip_test ...)、CTest に-Rフラグを付けて提供し、名前に「skip_test」を含むファイルを探すように指示します。これも機能するようです。私の問題は次のとおりです。make testコマンドを無視するにはどうすればよいskip_testですか?

コメントアウトしenable_testingて独自の を追加しようとするとadd_custom_target(test ....)、「テストが見つかりません!!!」というメッセージが表示されます。今は または のいずれmake testmake skip_testです。また、カスタム CTest ファイルを作成して追加しようとしましたset(CTEST_CUSTOM_TESTS_IGNORE skip_test)。これによりmake test、「skip_test」が無視されるようになりましたが、実行make skip_testすると「テストが見つかりません!!!」と応答するようになりました。

任意の提案をいただければ幸いです!

0 投票する
1 に答える
260 参照

unit-testing - CMake の add_test() で ARGN をカスタム スクリプトに渡す

単体テストでARGN をカスタムrun_test.cmakeに渡したいです。私が CMake スクリプトで行うことは次のとおりです。

どこ

問題は、(1) configure メッセージの出力中にすべての引数を取得するのARGN: ARG1;ARG2;ARG3に対し、(2) 実行時のメッセージの出力中に最初の引数のみを取得することTEST_ARGN: ARG1です。

それは間違いなく私のCmakeの理解不足ですが、何が間違っているのか知りたいです。

0 投票する
1 に答える
1071 参照

cmake - cmake/ctest で実行する機能テスト スクリプトを作成する方法

cmake の下で、次のコマンドをCMakeList.txt

シェル コマンドで実行できるテストを作成するだけで十分ですctest

残念ながら、cmake のドキュメントには、有効なテスト実行可能ファイルを構成する要素がまったく示されていません ( <test_command>)。通常、テスト実行可能ファイルは、google-test などのフレームワークを使用して生成されます。少し複雑ですが、cmake の下で google-test の下でテストを作成する方法を示す良い例が Web にあります。

ここで、cmake/ctest の使用を、コンパイルする必要がないため、google-test で実行できない機能テスト スクリプトに拡張したいと考えています。それから私の質問: を介して直接アクティブ化される有効な手書きのテスト実行可能ファイルを構成するものは何ですかadd_test:

  • テスト実行可能ファイルは出力を生成しますか? stdout または stderr に書き込みますか?
  • テスト実行可能ファイルは、成功または失敗を示す特定の値を返す必要がありますか?
  • または、cmake docs のどこで答えを見つけることができますか?
0 投票する
1 に答える
241 参照

ctest - cmocka ソースから CTest プル テスト名

CTest を使用して、cmocka で記述されたテストを実行しています。CTest に私の cmocka ソースからテスト名を読み取らせ、出力でそれらを提供することが可能かどうかを知りたいです。たとえば、テスト ソースにtest_order_correcttest_order_receivedおよびtest_customer_happyの 3 つのテストが含まれている場合、これらのテストを という実行可能ファイルにビルドしtests、CTest で実行すると、次のような出力のみが得られます。

が見たいです:

これは可能ですか、それとも CTest はそのようなソースを掘り下げることができませんか? 私がこれをタイプしていると、その言葉ではますます可能性が少なくなっているように思えます。