将参数从ctest传递给gtest

时间:2017-10-31 12:25:50

标签: cmake googletest ctest

我正在使用gtest为我的应用程序编写单元测试。我也有ctest运行add_test CMake命令添加的所有可执行文件。测试执行开始时是否可以通过ctest传递gtest变量?

我想例如有时用--gtest_filter标志来过滤掉测试,但我不知道如何通过ctest实现这一点?我尝试了以下方法:

ctest --gtest_filter=AppTest.*
ctest --test-arguments="--gtest_filter=AppTest.*"

但两者仍然运行所有测试而不是过滤后的测试。

谢谢!

3 个答案:

答案 0 :(得分:0)

看看CMakes的{{1}} add_test

要从CTest过滤掉测试,您可以使用-L ctest

答案 1 :(得分:0)

例如,进行测试'输出详细:

$ make test ARGS="-V"

进行特定测试:

$ ctest -R <regex>

NB:您可以查看this的一些示例。

答案 2 :(得分:0)

对于在2019年到这里看的任何人,最新版本的CMake都有gtest_discover_tests(GoogleTest模块),它将把您的测试提升到CTest中,您可以从那里进行过滤。

IOW,而不是在CTest中只有一个add_test,它将使用--gtest_list_tests来为每个测试调用add_test