Ich verwende CMake, um mein Projekt zu erstellen. Ich habe eine Unit-Test-Binärdatei hinzugefügt, die das Boost-Unit-Test-Framework verwendet. Diese eine Binärdatei enthält alle Komponententests. Ich habe diese Binärdatei hinzugefügt, die von CTest ausgeführt werden soll:
ADD_EXECUTABLE( tftest test-main.cpp )
ENABLE_TESTING()
ADD_TEST( UnitTests tftest)
Die Build-Ausgabe in Visual Studio zeigt jedoch nur das Ergebnis der Ausführung von CTest:
Start 1: UnitTests
1/1 Test #1: UnitTests ................***Failed 0.05 sec
0% tests passed, 1 tests failed out of 1
Dies ist nicht sehr hilfreich, da ich nicht sehen kann, welcher Test fehlgeschlagen ist. Wenn ich ctest manuell über die Befehlszeile mit ausführe, erhalte --verbose
ich die Ausgabe eines Boost-Unit-Tests, der angibt , was tatsächlich fehlgeschlagen ist:
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
Was muss ich also in der Datei CMakeLists.txt ändern, damit CTest --verbose
jederzeit ausgeführt wird? Gibt es eine bessere Möglichkeit, Boost-Unit-Tests mit CMake / CTest zu verwenden?