如何将 -j 选项添加到我的 ctest cmake 文件中?
How do I add the -j option to my ctest cmake file?
我想在 运行 宁 ctest
时 运行 并行作业。我试过设置
set(CTEST_PARALLEL_LEVEL 8)
在
CTestCustom.cmake.in
但这并没有在我重新生成构建文件后更改命令行选项。
我在 windows,使用 visual studio。
您无法更改在 Visual Studio 上构建 RUN_TESTS
时使用的命令行。代码中没有选项(参见 cmGlobalGenerator::CreateDefaultGlobalTargets()
)。
我看到以下可能的方法:
在您的 Windows 中全局设置 CTEST_PARALLEL_LEVEL
环境变量(因此它只是您机器 CMake/CTest 配置的一部分)或为您的 Visual Studio.
- Can I set an environment variable for an application using a shortcut in Windows?
创建您自己的目标,例如
add_custom_target(
RUN_TESTS_J8
COMMAND ${CMAKE_CTEST_COMMAND} -j 8 -C $<CONFIGURATION> --force-new-ctest-process
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
)
- CMake: setting an environmental variable for ctest (or otherwise getting failed test output from ctest/make test automatically)
并可能将其与其他预定义目标组合在一起
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMake")
set_property(TARGET RUN_TESTS_J8 PROPERTY FOLDER "CMake")
结合构建和 运行 作为测试本身的 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}"
)
然后它将作为正常构建的一部分 - 单独并行执行。
- How to run ctest after building my project with cmake
更多参考文献
- Using cmake how do I get verbose output from ctest?
我想在 运行 宁 ctest
时 运行 并行作业。我试过设置
set(CTEST_PARALLEL_LEVEL 8)
在
CTestCustom.cmake.in
但这并没有在我重新生成构建文件后更改命令行选项。
我在 windows,使用 visual studio。
您无法更改在 Visual Studio 上构建 RUN_TESTS
时使用的命令行。代码中没有选项(参见 cmGlobalGenerator::CreateDefaultGlobalTargets()
)。
我看到以下可能的方法:
在您的 Windows 中全局设置
CTEST_PARALLEL_LEVEL
环境变量(因此它只是您机器 CMake/CTest 配置的一部分)或为您的 Visual Studio.- Can I set an environment variable for an application using a shortcut in Windows?
创建您自己的目标,例如
add_custom_target( RUN_TESTS_J8 COMMAND ${CMAKE_CTEST_COMMAND} -j 8 -C $<CONFIGURATION> --force-new-ctest-process WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" )
- CMake: setting an environmental variable for ctest (or otherwise getting failed test output from ctest/make test automatically)
并可能将其与其他预定义目标组合在一起
set_property(GLOBAL PROPERTY USE_FOLDERS ON) set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMake") set_property(TARGET RUN_TESTS_J8 PROPERTY FOLDER "CMake")
结合构建和 运行 作为测试本身的
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}" )
然后它将作为正常构建的一部分 - 单独并行执行。
- How to run ctest after building my project with cmake
更多参考文献
- Using cmake how do I get verbose output from ctest?