将参数从 ctest 传递给 gtest

dro*_*dil 10 cmake googletest ctest

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

例如,我想有时使用 --gtest_filter 标志过滤掉测试,但我不知道如何或是否可以通过 ctest 进行测试?我尝试了以下方法:

ctest --gtest_filter=AppTest.*
ctest --test-arguments="--gtest_filter=AppTest.*"
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

Dan*_*att 5

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

IOW 而不是在 CTest 中使用单个add_test,它将用于--gtest_list_tests调用add_test您的每个测试。


Th.*_*ann 1

看一下 CMake 的add_test add_test

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

  • 我知道可以将参数添加到 add_test 命令中,但我想要实现的是在运行 ctest 时过滤测试 - 而不是通过更改 cmake 文件来实现这一点。 (4认同)