我想在运行ctest
时运行并行作业。我试过设置
set(CTEST_PARALLEL_LEVEL 8)
in
CTestCustom.cmake.in
但在重新生成构建文件后,这并没有改变命令行选项。
我在Windows上,使用visual studio。
答案 0 :(得分:7)
您无法更改在Visual Studio上构建RUN_TESTS
时使用的命令行。代码中没有选项(请参阅cmGlobalGenerator::CreateDefaultGlobalTargets()
)。
我看到以下可能的方法:
在Windows中全局设置CTEST_PARALLEL_LEVEL
环境变量(因此它只是部分机器CMake / CTest配置)或为Visual Studio添加启动脚本。
使用
之类的东西创建自己的目标add_custom_target(
RUN_TESTS_J8
COMMAND ${CMAKE_CTEST_COMMAND} -j 8 -C $<CONFIGURATION> --force-new-ctest-process
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
)
并且可能将其与其他预定义目标组合在一起
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMake")
set_property(TARGET RUN_TESTS_J8 PROPERTY FOLDER "CMake")
结合构建&amp;作为测试本身的POST_BUILD
步骤运行
add_custom_command(
TARGET MyTest
POST_BUILD
COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION> -R "^MyTest$" --output-on-failures
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
)
然后它将 - 作为正常构建的一部分 - 本身并行执行。
更多参考资料