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
では、CTestを常に実行するために、CMakeLists.txtで何を変更する必要があり--verbose
ますか?CMake / CTestでBoost単体テストを使用するより良い方法はありますか?