問題タブ [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 投票する
11 に答える
77893 参照

cmake - CMake を使用して、CTest から詳細な出力を取得するにはどうすればよいですか?

プロジェクトのビルドに CMake を使用しています。Boost 単体テスト フレームワークを使用する単体テスト バイナリを追加しました。この 1 つのバイナリには、すべての単体テストが含まれています。CTest で実行するバイナリを追加しました。

ただし、Visual Studio のビルド出力には、CTest の実行結果のみが表示されます。

どのテストが失敗したかがわからないため、これはあまり役に立ちません。コマンド ラインから ctest を手動で実行する--verboseと、実際に何が失敗したかを示す Boost 単体テストから出力が得られます。

では、CTest を常に実行するには、CMakeLists.txt で何を変更する必要があり--verboseますか? CMake/CTest で Boost 単体テストを使用するより良い方法はありますか?

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

junit - Hudson/JenkinsでCTestの結果を取得する方法

自動テストにCTest(CMakeの一部)を使用しています。

JenkinsダッシュボードでCTestの結果を取得するにはどうすればよいですか?または、言い換えると、CTestをJUnitのようなXMLで出力するにはどうすればよいですか?

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

unit-testing - ctest の実行中にエラーが発生した場所を見つける方法

make test を実行した後、次の出力が得られましたが、エラーの内容を知るにはどうすればよいですか?

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

c++ - cmake / ctest:ビルドターゲットの作成をテストとして使用することは可能ですか?

私はファイル形式の説明(好奇心旺盛な人にはISO 10303-11)を読み取り、そこからc++を生成するプログラムを持っています。生成されたコードはライブラリにコンパイルされ、ライブラリはさまざまな実行可能ファイルとリンクされて、そのファイル形式の読み取り/書き込みが行われます。

ジェネレータープログラムをビルドし、構成時に指定されたファイル形式のライブラリを生成するようにCMakeを設定しました。

次に、テストを追加します。これらのテストは、ビルドプロセスですでに実行されているステップと同じです。CTestスクリプトでこれらのステップをやり直す必要がありますか、それともctestにターゲットをビルドしてエラーメッセージをキャプチャするように指示する方法はありますか?

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

unit-testing - CTest でネストされたテストを実行する

私は小さいながらも自明ではないプロジェクトを持っています。これはアーキテクチャ上の理由から 3 つの別々のプロジェクトとして構築されており、相互に依存しているため、特に集中したり、穴を見つけてテスト カバレッジを改善したりしない限り、それは理にかなっています。プロジェクトのルートから作業します。

レイアウトは次のとおりです。

アーキテクチャに関する言葉libmyprojectは、私のアプリケーションの真髄です。CLI はライブラリとしてコードをエンドユーザーに出荷する恐ろしい方法であるため、このように構築されています。C# および Objective-C アプリケーションからも使用されます。(そしてすべてが期待どおりに機能します)

libmyotherprojectプラットフォーム固有のサポート コードであり、 に直接接続されていませんlibmyproject。いくつかの単体テストがあります。

のすべてに単体テストがvlc-pluginあるわけではないことを示す以外は、ここでは重要ではありません。/src/*/

私のワークフローは通常、何か役に立つものが見つかるまで CLI アプリをハッキングし、それをライブラリにリファクタリングして、移植可能であることを確認することです。

で作業している場合/src/*/build/、通常は を実行しているcmake ../ && make && ctest --output-on-failure場合、すべてが機能します。

で作業していて/buildを実行するcmakeと、個々のコンポーネントはadd_subdirectories()CMake から ( を使用して)正しくビルドされますがCTest、再帰的にテストを見つけることはできません。

のドキュメントCTestは、何をすべきかについて少し役に立ちません。

ADD_TEST()コールが にあるので、コールが実行されることを期待/src/libmyotherproject/tests/CMakeLists.txtしていたでしょうか? cmake(から実行すると、少なくともコンパイルされます/build/)

十分な情報を提供できたと思います。ありがとうございます。

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

c - Cでの単体テストのためにCTestでチェックライブラリを使用する方法

ユニットテストにチェックライブラリを使用したいプロジェクトがあります。

私の現在のプロジェクトはCMakeを使用しており、次の構造を持っています:

モジュールcore-testの単体テストがあります。coreでは、モジュールなどscrypt-testのテストを行います。scrypt


checkCTest での使用は理にかなっていますか?

checkはいの場合: CMake/CTest プロジェクトに使用する単体テストを接続するにはどうすればよいですか? 有効化された実行可能ファイルからの結果を CTest が解釈するには、追加の構成が必要checkですか?

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

visual-studio - 生成されたVisualStudioファイルでCTestが実行されるディレクトリを変更する方法

現在、CMakeによって生成されたRUN_TESTSプロジェクトを使用しているときに、ディレクトリCTestを変更するのに問題があります。現在、CMAKE_RUNTIME_OUTPUT_DIRECTORYはカスタムパスに設定されています。その結果、CTestが実行しようとすると、バイナリを含まないディレクトリから実行されます。

一時的な回避策として、$ {RUNTIME_OUTPUT_DIRECTORY} \ testを使用してADD_TESTを呼び出していますが、これが正しい解決策であるかどうかはわかりません。CTestが使用するデフォルトのディレクトリを変更するより良い方法はありますか?

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

c++ - Ctest / CDashワークフロー:ナイトリービルドのデプロイ

私はいくつかのCMakeプロジェクトを使用/維持しているので、CTest / CDashの調査を開始しましたが、理解できないことがあります。

ビルド/テスト結果を表示するためだけに作成されていますか?(別名美化ログ)

または:サーバーへのナイトビルドバイナリの展開をそのワークフローに含めることはできますか?

CTestはCMakeプロジェクトをテストし、テスト結果を表示するための理想的なツールだと思いますが、Webサーバーでのナイトリービルドのデプロイも自動化したいと思います。それがそのための適切なツールかどうか疑問に思います。 。

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

windows - cmakeでadd_testを使用して${CTEST_CONFIGURATION_TYPE}を渡す方法

CMakeにエスケープ文字を追加せずに、cmakeでadd_testを使用して${CTEST_CONFIGURATION_TYPE}を渡す方法がわからないようです。

私は現在、cmakeを使用してVSプロジェクトファイルを生成し、RUNTIME_OUTPUT_DIRECTORYを設定しています。これらは他のビルドされた実行可能ファイルに依存するため、いくつかのテストの作業ディレクトリとしてこのディレクトリ+構成を使用する必要があります。

使ってみました

これにより、テスト実行可能ファイルが正しく検出されますが、生成されるCTestTestfile.cmakeファイルには次のものが含まれています。

とにかくこれを機能させることができますか、それともコマンドラインを介して毎回正しいディレクトリをテストに渡す必要がありますか?

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

continuous-integration - 複数の依存プロジェクトとの CMake および継続的統合

現在、CI 用に CMake/CTest を構成しています。以下を除いて、すべて正常に動作します: 相互に依存するいくつかのプロジェクトがあります。ただし、トップレベルのビルド スクリプトでは、正しい順序でビルドされているだけです。CI では、各プロジェクトに対して、それぞれのプロジェクトのビルド ディレクトリで「make Continuous」を実行します。ただし、あるプロジェクトでヘッダー ファイルが更新された場合、このプロジェクトのみが「make Continuous」後にビルドされます。同じインクルード ファイルを使用する別の依存プロジェクトは、このプロジェクトでは更新が行われないため、「make Continuous」中に再構築されません。

私の質問: svn 更新の結果とは無関係に、「make Continuous」中にビルドステップを強制的に実行する方法はありますか?

これを解決する他のアイデアはありますか?