单元测试 - CTest --build and-test with --test-command 选项



我使用 Ctest 运行一堆我使用 add_test() 注册的谷歌测试。目前,这些测试不接受任何参数。但是,我想在运行 ctest 时给他们所有参数(所有参数通用,特别是 --gtest_output=xml )。

我听说使用该--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")

相关内容

  • 没有找到相关文章

最新更新