問題タブ [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.
cmake - CMake を使用して、CTest から詳細な出力を取得するにはどうすればよいですか?
プロジェクトのビルドに CMake を使用しています。Boost 単体テスト フレームワークを使用する単体テスト バイナリを追加しました。この 1 つのバイナリには、すべての単体テストが含まれています。CTest で実行するバイナリを追加しました。
ただし、Visual Studio のビルド出力には、CTest の実行結果のみが表示されます。
どのテストが失敗したかがわからないため、これはあまり役に立ちません。コマンド ラインから ctest を手動で実行する--verbose
と、実際に何が失敗したかを示す Boost 単体テストから出力が得られます。
では、CTest を常に実行するには、CMakeLists.txt で何を変更する必要があり--verbose
ますか? CMake/CTest で Boost 単体テストを使用するより良い方法はありますか?
junit - Hudson/JenkinsでCTestの結果を取得する方法
自動テストにCTest(CMakeの一部)を使用しています。
JenkinsダッシュボードでCTestの結果を取得するにはどうすればよいですか?または、言い換えると、CTestをJUnitのようなXMLで出力するにはどうすればよいですか?
unit-testing - ctest の実行中にエラーが発生した場所を見つける方法
make test を実行した後、次の出力が得られましたが、エラーの内容を知るにはどうすればよいですか?
c++ - cmake / ctest:ビルドターゲットの作成をテストとして使用することは可能ですか?
私はファイル形式の説明(好奇心旺盛な人にはISO 10303-11)を読み取り、そこからc++を生成するプログラムを持っています。生成されたコードはライブラリにコンパイルされ、ライブラリはさまざまな実行可能ファイルとリンクされて、そのファイル形式の読み取り/書き込みが行われます。
ジェネレータープログラムをビルドし、構成時に指定されたファイル形式のライブラリを生成するようにCMakeを設定しました。
次に、テストを追加します。これらのテストは、ビルドプロセスですでに実行されているステップと同じです。CTestスクリプトでこれらのステップをやり直す必要がありますか、それともctestにターゲットをビルドしてエラーメッセージをキャプチャするように指示する方法はありますか?
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/
)
十分な情報を提供できたと思います。ありがとうございます。
c - Cでの単体テストのためにCTestでチェックライブラリを使用する方法
ユニットテストにチェックライブラリを使用したいプロジェクトがあります。
私の現在のプロジェクトはCMakeを使用しており、次の構造を持っています:
モジュールcore-test
の単体テストがあります。core
では、モジュールなどscrypt-test
のテストを行います。scrypt
check
CTest での使用は理にかなっていますか?
check
はいの場合: CMake/CTest プロジェクトに使用する単体テストを接続するにはどうすればよいですか? 有効化された実行可能ファイルからの結果を CTest が解釈するには、追加の構成が必要check
ですか?
visual-studio - 生成されたVisualStudioファイルでCTestが実行されるディレクトリを変更する方法
現在、CMakeによって生成されたRUN_TESTSプロジェクトを使用しているときに、ディレクトリCTestを変更するのに問題があります。現在、CMAKE_RUNTIME_OUTPUT_DIRECTORYはカスタムパスに設定されています。その結果、CTestが実行しようとすると、バイナリを含まないディレクトリから実行されます。
一時的な回避策として、$ {RUNTIME_OUTPUT_DIRECTORY} \ testを使用してADD_TESTを呼び出していますが、これが正しい解決策であるかどうかはわかりません。CTestが使用するデフォルトのディレクトリを変更するより良い方法はありますか?
c++ - Ctest / CDashワークフロー:ナイトリービルドのデプロイ
私はいくつかのCMakeプロジェクトを使用/維持しているので、CTest / CDashの調査を開始しましたが、理解できないことがあります。
ビルド/テスト結果を表示するためだけに作成されていますか?(別名美化ログ)
または:サーバーへのナイトビルドバイナリの展開をそのワークフローに含めることはできますか?
CTestはCMakeプロジェクトをテストし、テスト結果を表示するための理想的なツールだと思いますが、Webサーバーでのナイトリービルドのデプロイも自動化したいと思います。それがそのための適切なツールかどうか疑問に思います。 。
windows - cmakeでadd_testを使用して${CTEST_CONFIGURATION_TYPE}を渡す方法
CMakeにエスケープ文字を追加せずに、cmakeでadd_testを使用して${CTEST_CONFIGURATION_TYPE}を渡す方法がわからないようです。
私は現在、cmakeを使用してVSプロジェクトファイルを生成し、RUNTIME_OUTPUT_DIRECTORYを設定しています。これらは他のビルドされた実行可能ファイルに依存するため、いくつかのテストの作業ディレクトリとしてこのディレクトリ+構成を使用する必要があります。
使ってみました
これにより、テスト実行可能ファイルが正しく検出されますが、生成されるCTestTestfile.cmakeファイルには次のものが含まれています。
とにかくこれを機能させることができますか、それともコマンドラインを介して毎回正しいディレクトリをテストに渡す必要がありますか?
continuous-integration - 複数の依存プロジェクトとの CMake および継続的統合
現在、CI 用に CMake/CTest を構成しています。以下を除いて、すべて正常に動作します: 相互に依存するいくつかのプロジェクトがあります。ただし、トップレベルのビルド スクリプトでは、正しい順序でビルドされているだけです。CI では、各プロジェクトに対して、それぞれのプロジェクトのビルド ディレクトリで「make Continuous」を実行します。ただし、あるプロジェクトでヘッダー ファイルが更新された場合、このプロジェクトのみが「make Continuous」後にビルドされます。同じインクルード ファイルを使用する別の依存プロジェクトは、このプロジェクトでは更新が行われないため、「make Continuous」中に再構築されません。
私の質問: svn 更新の結果とは無関係に、「make Continuous」中にビルドステップを強制的に実行する方法はありますか?
これを解決する他のアイデアはありますか?