У меня есть тестовый пример Boost, который выглядит следующим образом:
#define BOOST_TEST_MODULE my_test
#include <cstdio>
#include <boost/test/unit_test.hpp>
BOOST_AUTO_TEST_CASE(my_test_case)
{
printf("123");
}
Я пытался построить этот тестовый пример, используя cmake
,
cmake_minimum_required(VERSION 3.5)
project(my_test)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall")
enable_testing()
file(GLOB TEST_SRCS main.cpp)
foreach(TEST_SRC ${TEST_SRCS})
get_filename_component(TEST_NAME ${TEST_SRC} NAME_WE)
add_executable(${TEST_NAME} ${TEST_SRC})
# Boost
ADD_DEFINITIONS(-DBOOST_TEST_DYN_LINK)
find_package(Boost COMPONENTS unit_test_framework REQUIRED)
target_link_libraries(${TEST_NAME} PUBLIC ${Boost_LIBRARIES})
add_test(NAME ${TEST_NAME} COMMAND ${TEST_NAME})
endforeach(TEST_SRC)
Когда я просто использую команду make test
, вывод идет следующим образом:
Running tests...
Test project xxx
Start 1: main
1/1 Test #1: main ............................. Passed 0.00 sec
100% tests passed, 0 tests failed out of 1
Total Test time (real) = 0.00 sec
Ничего не отображается (используя CTEST_OUTPUT_ON_FAILURE
не помогает, потому что я хочу увидеть вывод, даже если все тесты пройдены). Я тоже пробовал ctest -V
но это должно быть более многословным, что я ожидаю
UpdateCTestConfiguration from :xxx
UpdateCTestConfiguration from :xxx
Test project xxx
Constructing a list of tests
Done constructing a list of tests
Updating test list for fixtures
Added 0 tests to meet fixture requirements
Checking test dependency graph...
Checking test dependency graph end
test 1
Start 1: main
1: Test command: xxx
1: Test timeout computed to be: 10000000
1: Running 1 test case...
1: 123
1: *** No errors detected
1/1 Test #1: main ............................. Passed 0.00 sec
100% tests passed, 0 tests failed out of 1
Total Test time (real) = 0.00 sec
Что я действительно хочу, так это что-то более многословное, чем make test
, но чище по сравнению с ctest -V
, как вывод ниже (который я получил путем непосредственного запуска двоичного ./main
):
Running 1 test case...
123
*** No errors detected
Задача ещё не решена.
Других решений пока нет …