我使用 Ctest 运行一堆我使用add_test()
. 目前,这些测试不接受任何参数。但是,我想--gtest_output=xml
在运行ctest
.
我听说可以使用该--test-command
选项,但是,我看到我们需要--test-command
与--build-and-test
. 有这种用法的例子吗?
我使用 Ctest 运行一堆我使用add_test()
. 目前,这些测试不接受任何参数。但是,我想--gtest_output=xml
在运行ctest
.
我听说可以使用该--test-command
选项,但是,我看到我们需要--test-command
与--build-and-test
. 有这种用法的例子吗?
参数的格式ctest
在 CTest文档中指定如下:
ctest --build-and-test <path-to-source> <path-to-build> --build-generator <generator> [<options>...] [--build-options <opts>...] [--test-command <command> [<args>...]]
因此,例如在 Visual Studio 上,您可以Test1
从构建文件夹运行测试(用于..
源目录和二进制目录):.
ctest --build-and-test .. . --build-generator "Visual Studio 16 2019" --test-command Test1 --gtest_output=xml
从 CMake 3.17 开始,您现在可以在定义测试本身的 CMake 文件中指定要传递给 CTest 的参数(以及单个测试的参数)。该CMAKE_CTEST_ARGUMENTS
变量采用分号分隔的参数列表传递给 CTest。所以,坚持上面的例子,你可以做这样的事情:
set(CMAKE_CTEST_ARGUMENTS "--build-and-test;${CMAKE_SOURCE_DIR};${CMAKE_BINARY_DIR};--build-generator;${CMAKE_GENERATOR};--test-command;Test1;--gtest_output=xml")