3

理想的には からCMakeLists.txtにセットアップする方法はありますctest

  • 個々のテストを実行する前にヘッダーを出力します。
  • 個々のテストを実行した後にフッターを印刷します。
  • テストがすべて成功したかどうかに依存するフッターを作成しますか?

フッターはデフォルト出力の下に表示されます

The following tests FAILED:
       76 - MyHardTest
Errors while running CTest

これは、2 年以上前から開かれているやや不明確な質問 ( CMakeLists.txt: How to print a message if ctest fails? ) を具体化し、一般化したものです。したがって、簡単な解決策はないのではないかと心配しています。

したがって、別の質問: で目的の動作を達成できCDashますか?

4

2 に答える 2

0

調査中に、このようなものを統合することは非常に難しいことがわかりました。完全にはわかりませんが、CTestScript でこれを行うことができると信じていadd_custom_targetますctest。たとえば、作成した CTestScript を使用してコマンドmake checkが実行されるようctestになります...作業が多すぎますか?

あなたのアプリケーションで考えられる最も簡単な方法は、ヘッダーとフッターのプレースホルダーとして上下に 2 つの空のテストを追加することです。Ctest の最後には既に "The following tests FAILED:" のような出力があるので、気にする必要はないかもしれません。あらゆる種類の条件付きロジックIF TEST FAILED DO THISは、現在 ctest では実行できません。

add_test(NAME HEADER_GOES_HERE)
add_test(NAME ACTUAL_TEST COMMAND test)
add_test(NAME FOOTER_GOES_HERE)

誰かがより良い答えをくれるかもしれませんが、これは私が考えることができる最も簡単な (まったく良いとは言えません) 実装です。

于 2016-06-08T14:44:41.080 に答える