2

CMake 用に複数の追加関数を作成しました。それらは非常に多くなり、それらを (単体) テストする必要があります。

次のような変数ベースのみの単純なものがあります。

function(join_list LIST GLUE)

これらは、結果をチェックするカスタム CMake スクリプトでテストできます。このために、assert-macros のセットも作成しました。

関数がターゲットベースの場合、これはさらに難しくなります。

function(target_my_custom_property_set TARGET VALUE)

構成する必要がある複数の CMakeLists.txt ファイルが必要です。構成は、指定されたメッセージで成功または失敗する必要があります。また、結果ファイルもチェックする必要があります。

もっと簡単な方法はありますか?既存のフレームワークはありますか?Kitware は出荷されたモジュールをどのようにテストしますか?

4

1 に答える 1

2

ctestあらゆる種類のテストを実行するためのフレームワークです。CMake Testing Processの一部として実行される多くのテストがあります。これらのテストは、Testsフォルダのソース コードの一部であり、.cmakeCMakeLists.txt

確認したい特定のテストは、RunCMakeフォルダーにあります。これらのテストは、RunCMake.cmake. 良い例は のテストですmessage。これらのテストが行​​うことは、構成ステップからexecute_processの出力をキャプチャし、期待される出力を含むファイルの内容cmakeと比較するために利用されます。cmakeからの戻り値cmakeも返され、テストできます。

「結果ファイル」とは何かを指定しません。構成を実行し、いくつかのファイルをビルドおよびスキャンしてその内容を確認する、より複雑な例があります。

失敗した構成、失敗したビルド、合格した構成とビルド、および特定の出力メッセージでチェックメッセージを分離すると、簡単になる場合があります。

于 2018-12-24T02:09:19.933 に答える