如何编写将显示构建错误的CMake测试?

时间:2014-11-21 21:18:52

标签: testing cmake ctest

我目前有这个巧妙的代码,可以将我的单源文件测试添加到我的CMake项目中:

function(runtime_test test_dir test_name)
  add_executable(${test_name} EXCLUDE_FROM_ALL ${TEST_ROOT}/${test_dir}/${test_name}.c++ ${TEST_ROOT}/test.h++)
  set_target_properties(${test_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY test/${test_dir})
  #add_test(remove/${test_dir}/${test_name} ${CMAKE_COMMAND} -E remove test/${test_dir}/${test_name}${CMAKE_EXECUTABLE_SUFFIX})
  #add_test(build/${test_dir}/${test_name} ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target ${test_name})
  #add_test(test/${test_dir}/${test_name} test/${test_dir}/${test_name})
  add_test(${test_dir}/${test_name} ${CMAKE_COMMAND} -E remove test/${test_dir}/${test_name}${CMAKE_EXECUTABLE_SUFFIX}
                                 && ${CMAKE_COMMAND} --verbose --build ${CMAKE_BINARY_DIR} --target ${test_name}
                                 && test/${test_dir}/${test_name})
  set_property(TEST ${test_dir}/${test_name} APPEND PROPERTY DEPENDS build/${test_dir}/${test_name})
endfunction()

注释行添加3个“测试”,删除,构建和运行可执行文件。我按如下方式进行了一次测试:

ctest --verbose -R some_test

通过注释3行,我可以看到构建错误输出到我的屏幕。问题是:这使得测试数量不具代表性。如果我使用3合1解决方案,则隐藏构建错误输出。有什么方法可以解决这个问题吗?

0 个答案:

没有答案