我有一个使用CMake的C ++项目。当我使用cmake -G "Visual Studio 15" . -B .\build
生成Visual Studio文件时,可以在Solution Explorer项目ALL_BUILD
,RUN_TESTS
和ZERO_CHECK
中的CMakePredefinedTargets,Continuous
,{ CTestDashboardTargets和Experimental
(这是我的实际项目)下的{1}},Nightly
和NightlyMemoryCheck
。
构建MyProject
时,我看到Visual Studio首先构建了MyProject
项目,然后构建了ZERO_CHECK
。但是,我也想在MyProject
之后建立RUN_TESTS
项目,因为这是mu单元测试所在的地方。现在,我只需右键单击解决方案,然后选择MyProject
即可构建“解决方案属性”。但是,当我构建RUN_TESTS
时,是否可以自动构建并运行项目RUN_TESTS
?
我的MyProject
是:
CMakeLists.txt
就我而言,我正在使用Catch2作为测试框架。谢谢。
答案 0 :(得分:1)
一种可行的解决方案是使用add_custom_command
形式的POST_BUILD
事件。此示例在构建RUN_TESTS
目标之后“构建” MyProject
目标(实际上运行测试):
# Run the tests after building target.
add_custom_command(TARGET MyProject
POST_BUILD
COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target RUN_TESTS
)
尽管有些陈旧,但这是thread,提供了一些在构建项目时运行个体测试的示例。