問題タブ [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.
unit-testing - Ctest でテストのグループを作成する
個々の ctest テストをグループ化しようとしていますが、これまでのところ成功していません。たとえば、次のテストがある場合: add_test(test1) add_test(test2) add_test(test3)
それらを 1 つのテストとしてダッシュボードにアップロードするテスト スイートにグループ化したいと考えています。
interop - fortran と char** を使用した ctest create_test_sourcelist
create_test_sourcelist を使用して CTest で実行したいいくつかの Fortran テストがあります。これは C または C++ でドライバを作成するユーティリティで、fortran テスト ルーチンを呼び出して署名を期待します。
おそらく iso_c_bindings を使用して、この署名をインターフェイスする正しい方法を誰かが説明できますか?これらはかなり標準になっていると理解しています。私を傷つけているのは char** だと思います-整数引数の例はたくさんあります。
ありがとう!
cmake - CMake/CTest & gcovr: ファイル名拡張子?
フラグ --coverage を指定して CMake でコンパイルし、ブースト ユニット テスト プログラムを実行すると、拡張子が .cpp.gcda および .cpp.gcno のファイルが作成されます。次に gcovr を実行すると、.gcno ファイルが見つからないと主張します (エラー メッセージ ".gcno:cannot open graph file")。すべての出力ファイルを移動することもできますが、それは非常に厄介でばかげています。
他の人の関連する問題は CTest を使用して解決できますが、私は Jenkins を使用しているため、gcovr に固執し、cobertura xml 出力を使用したいと考えています。
Ps。CMake と gcovr をどのように組み合わせる必要があるのでしょうか。
cmake - CTest スクリプトから CMake キャッシュ変数にアクセスする
私のプロジェクトは、valgrind 抑制ファイルと CMake スクリプトが付属するサードパーティ ライブラリにリンクしています。スクリプトは、抑制ファイルの場所を CMake キャッシュ変数に格納します。
プロジェクトで継続的なテストを実行し、ダッシュボードに送信する CTest スクリプトを作成しました。メモリ チェック段階で抑制ファイルを使用したいと考えています。残念ながら、CTest スクリプトは CMake キャッシュについて何も認識していないようです。CTest スクリプトから CMake キャッシュ変数にアクセスするにはどうすればよいですか?
unit-testing - ctest で失敗したテストを再実行する方法は?
プロジェクトのテストを開始するために CTest を使用しています。前回の実行で失敗したテストのみを起動したいと考えています。
CTest でそれを行う簡単な方法はありますか?
cmake - cmake/ctest で gtest を使用すると、テストが見つかりません
次の構造のプロジェクトがあります。
ファイル test_vector3.cpp は、2 つの簡単なテストを提供する gtest 単体テスト ファイルです。最上位の CMakeLists.txt は、インクルードをセットアップし、src および test サブディレクトリを追加するだけです。
src/CMakeLists.txt ファイルは、vector3.cpp を静的ライブラリにコンパイルします。
test/CMakeLists.txt ファイルは、/usr/share/cmake-2.8/Modules/FindGTest.cmake で提供されている例に基づいています。
次に、次を実行します。
liblinalg.a ライブラリを build/src に正しくコンパイルし、test_vector3 実行可能ファイルを build/test に正しくコンパイルします。test_vector3 実行可能ファイルを実行すると、すべてのテストに合格したことを示す出力が googletest から得られますが、実行してmake test
も何も出力されず、実行するctest ..
と次のようなメッセージが表示されます。
足りないものはありますか?それとも、ctest が gtest でどのように機能するかを誤解しているだけですか?
c++ - 別のフォルダーからの CMake テスト ソース
Qt でプロジェクトを作成し、Google Test でテストするために CMake をいじり始めました。現時点では、必要なすべてのライブラリをコンパイルしてリンクする方法を見つけることに成功しています。ただし、次のプロジェクト構造でソースをテスト ファイルにリンクする方法が見つかりませんでした。
ルート CMakeLists.txt には、gtest、src、および test フォルダーの add_subdirectory が含まれています。各部分が正しくコンパイルされることを確認するために、「Hello world」アプリと単純な EXPECT_TRUE(true) テストを正常にコンパイルして実行しました。残念ながら、ソース ファイルをテストに含める方法が見つかりませんでした。以下のプロジェクト構成で可能でしょうか?
PSソースをライブラリとしてコンパイルしてテストにリンクすることが可能であることは知っていますが、単体テストではなく統合テストに適しているため、そのアプローチは嫌いです...
編集:ツリーにクラス名を追加しました
visual-studio - CTest、VS2010。Nightly、NightlyMemCheck などを取り除く方法は?
Visual Studio 2010 で CMake と CTest を使用しています。
ENABLE_TESTING()
数秒後、ADD_TEST()
私のソリューションには「Continuous」、「Experimental」などの名前のプロジェクトが含まれています。
私はそれらすべてを必要としません。さらに、私はすべてのコードを、CMake にあまり詳しくない人に渡すつもりです。この人は、この豊富さが混乱し、誤解を招くのではないかと心配しています。
したがって、RUN_TESTS プロジェクトのみを残し、他のすべてのテスト プロジェクトを取り除きたいと思います。
これどうやってするの?
cmake - cmakeでプロジェクトをビルドした後にctestを実行する方法
プロジェクトが正常にビルドされるたびにテストを開始したいと思います。また、一部のテストが壊れている場合は、ビルドも壊れてほしいです。デフォルトでは、ctest
コマンドを実行して手動でテストを実行する必要があります。CTestは実際にプロジェクトをビルドできますがmake
、ソースをビルドするために呼び出すIDEを使用しています。そして、make
テストを実行しません。
このコマンドをルートCMakeLists.txtファイルに追加しましたが、機能しません。
CMakeはエラーを返さず、すべてが正常にビルドされますが、カスタムコマンドが呼び出されません。CMakeでビルドが成功するたびに何かを実行するにはどうすればよいですか?
アップデート:
私の最終的な解決策は、このマクロを作成することです。
リスト内のテストターゲットを呼び出しadd_test
て記憶します。このマクロによって追加されたプロジェクトのすべてのテスト。ルートCMakeLists.txtには、次のコードがあります。
プロジェクト内のすべての単体テストに依存するカスタムターゲットを作成します。カスタムコマンドは、all_tests
ターゲットがビルドされた後に実行されます。
c++ - CMakeテストにbashコマンドを追加
私は最近、CMakeテストの可能性について知りました。私はそれを使用していくつかのテストクライアントを作成しました。それらは問題なく動作しますが、テストを実行するには次のことを行う必要があります。
cmake ..-> make->次に、バックグラウンドまたは他のターミナルでプログラムを実行します-> make test(すべてのテストクライアント/テストシナリオを実行します)
次のコマンドが必要だとします。maketestは、テストを実行するだけでなく、実行可能ファイル(テスト中)をバックグラウンドで実行し、テストの完了後に強制終了します。CMakeListsを介してbashコマンドを渡すにはどうすればよいですか?自分が望むことを達成するための簡単な方法をまだ見つけていません