Cmake 如果我没有';不使用CDash?
我正在根据我从Daniel Pfeifer的“有效的cmake”讲座中学到的知识重新定义我的项目的cmake配置,但我仍然无法了解ctest 目前,我的测试设置如下:Cmake 如果我没有';不使用CDash?,cmake,ctest,Cmake,Ctest,我正在根据我从Daniel Pfeifer的“有效的cmake”讲座中学到的知识重新定义我的项目的cmake配置,但我仍然无法了解ctest 目前,我的测试设置如下: enable_testing() find_program(MEMCHECK_COMMAND valgrind) # executable add_executable(myTest ${SRC_LIST}) target_link_libraries(myTest ${LIB_LIST}) # test add_test(NAM
enable_testing()
find_program(MEMCHECK_COMMAND valgrind)
# executable
add_executable(myTest ${SRC_LIST})
target_link_libraries(myTest ${LIB_LIST})
# test
add_test(NAME myTest_test
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/myTest)
add_custom_target(myTest_test
COMMAND ctest -R myTest_test --output-on-failure
DEPENDS myTest)
# memcheck
add_test(NAME myTest_memcheck
COMMAND ${MEMCHECK_COMMAND} ${CMAKE_CURRENT_BINARY_DIR}/myTest)
add_custom_target(myTest_memcheck
COMMAND ctest -R myTest_memcheck --output-on-failure
DEPENDS ${TEST_NAME})
我可以运行make myTest\u test
和make myTest\u memcheck
并知道我没有破坏任何东西
让我痛苦的是,我必须对每个测试可执行文件(项目很大,所以我有几十个)都这样做,甚至把它提取为一个函数,这感觉是错误的
我读过ctest文档(),仪表盘对我来说几乎是完美的-如果我能运行ctest-R myTest-T test
,ctest-R myTest-T memcheck
和ctest-R myTest-T coverage
我会非常高兴:)(如果这些命令能够在需要时触发构建,我会更加高兴)
问题在于include(CTest)
创建了我不需要的目标(连续/夜间仪表盘,带有启动/更新/配置/提交步骤)。它将仅用作实验构建,并由开发人员在编码过程中执行。对于CI,我让Jenkins拥有自己的魔力。我希望最终:
-仪表板/构建
-仪表板/测试
-仪表板/内存检查
-仪表板/覆盖范围
我应该怎么做?我应该手动创建自己的仪表板(如果可能的话)还是放弃这个想法,继续我的自定义目标