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

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

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

ADD_EXECUTABLE( tftest test-main.cpp )
ENABLE_TESTING()
ADD_TEST( UnitTests tftest)

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

      Start 1: UnitTests
  1/1 Test #1: UnitTests ................***Failed    0.05 sec

  0% tests passed, 1 tests failed out of 1

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

1: Test command: tftest.exe
1: Test timeout computed to be: 9.99988e+006
1: Running 4 test cases...
1: test-main.cpp(20): error in "sanity_check3": check 1 == 2 failed
1:
1: *** 1 failure detected in test suite "Master Test Suite"
1/1 Test #1: UnitTests ................***Failed    0.00 sec

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

ベストアンサー1

ctest --output-on-failureオプションを使用するか、環境変数を設定することができますCTEST_OUTPUT_ON_FAILUREは、テストが失敗するたびにテスト プログラムからの出力を表示します。Makefile とコマンド ラインを使用する場合、これを行う 1 つの方法は次のとおりです。

env CTEST_OUTPUT_ON_FAILURE=1 make check

このStack Overflowの質問と回答Visual Studio で環境変数を設定する方法を示します。

おすすめ記事