3

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

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

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

4

2 に答える 2

3

十分に新しいバージョンのctest(最新の公式リリースは2.8.6)を使用している場合は、add_testのNAME / COMMANDシグニチャをcmake--buildコマンドラインオプションと組み合わせて使用​​して、特定のターゲットをビルドできます。ツリーを構築します。

たとえば、「tgt1」という名前のカスタムターゲット(またはライブラリまたは実行可能ターゲット)を想定すると、次のように機能するはずです。

add_test(NAME test.build.tgt1
  WORKING_DIRECTORY ${CMAKE_BINARY_DIRECTORY}
  COMMAND ${CMAKE_COMMAND} --build . --target tgt1 --config $<CONFIGURATION>
)

これは、どこでも同じ構文でクロスプラットフォームで機能します。VisualStudioやXcodeなどのマルチ構成ジェネレーターでも機能します。

于 2011-10-15T11:07:16.260 に答える
0

ファイルで言ってから、テストターゲットを作成するために呼び出してみenable_testing()ましたかCMakeLists.txtadd_test()CMakeのドキュメントに従えば、1つの統合ビルドスクリプトですべてを実行できると思います。

于 2011-10-14T02:44:10.487 に答える