9

我使用 Ctest 运行一堆我使用add_test(). 目前,这些测试不接受任何参数。但是,我想--gtest_output=xml在运行ctest.

我听说可以使用该--test-command选项,但是,我看到我们需要--test-command--build-and-test. 有这种用法的例子吗?

4

1 回答 1

2

参数的格式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")
于 2020-02-13T00:35:06.100 回答