cmake - 如何在cmake中将引用的参数传递给add_test?

标签 cmake googletest ctest

我正在尝试将参数从 cmake 传递给 gtest 测试套件:

add_test(NAME craft_test
         COMMAND craft --gtest_output='xml:report.xml')

问题是这些参数被引号括起来传递,为什么?看起来是个bug,有什么好的方法可以避免吗?
$ ctest -V
UpdateCTestConfiguration  from :/usr/local/src/craft/build-analyze/DartConfiguration.tcl
UpdateCTestConfiguration  from :/usr/local/src/craft/build-analyze/DartConfiguration.tcl
Test project /usr/local/src/craft/build-analyze
Constructing a list of tests
Done constructing a list of tests
Checking test dependency graph...
Checking test dependency graph end
test 1
    Start 1: craft_test

1: Test command: /usr/local/src/craft/build-analyze/craft "--gtest_output='xml:report.xml'"
1: Test timeout computed to be: 9.99988e+06
1: WARNING: unrecognized output format "'xml" ignored.
1: [==========] Running 1 test from 1 test case.
1: [----------] Global test environment set-up.
1: [----------] 1 test from best_answer_test
1: [ RUN      ] best_answer_test.test_sample
1: [       OK ] best_answer_test.test_sample (0 ms)
1: [----------] 1 test from best_answer_test (0 ms total)
1: 
1: [----------] Global test environment tear-down
1: [==========] 1 test from 1 test case ran. (0 ms total)
1: [  PASSED  ] 1 test.
1/1 Test #1: craft_test .......................   Passed    0.00 sec

100% tests passed, 0 tests failed out of 1

Total Test time (real) =   0.00 sec

最佳答案

这里的问题不是 CMake 添加的引号;它是 'xml:report.xml' 中的单引号那些有过错。

你应该做:

add_test(NAME craft_test
     COMMAND craft --gtest_output=xml:report.xml)

关于cmake - 如何在cmake中将引用的参数传递给add_test?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17264876/

相关文章:

c++ - 包错误需要修复

cmake - 无法为导入的目标指定编译选项 "..."

c++ - PrintTo 用于 Google Test 中的指针

c++ - 我可以在设置期望后复制一个谷歌模拟对象吗?

cmake ctest生成

c++ - 无法将 assimp 与 cmake 链接

cmake - 如何使用 CMake 从 CPack 二进制文件中排除文件/目录

c++ - 来自 gmock 的 DefaultValue 的范围问题

cmake - 指定 CTestTestfile.cmake 的目标

unit-testing - CMake 和 CTest 的默认 "test"命令会跳过特别命名的测试