如何将--gtest_filter传递给ctest

问题描述 投票:0回答:1

我正在将我的一个测试文件夹迁移到 gtest,它包含多个文件,每个文件都有自己的测试夹具。

到目前为止,我的简化版 cmake 是:

file(GLOB SOURCES *.c)
set(EXECUTABLE_NAME "mytest")
add_executable(${EXECUTABLE_NAME} ${SOURCES})
gtest_add_tests(TARGET ${EXECUTABLE_NAME} TEST_LIST ${EXECUTABLE_NAME}_TESTS)
# add_test(NAME ${EXECUTABLE_NAME} COMMAND ${EXECUTABLE_NAME}) #tried

到目前为止,

ctest -N
显示了尽可能多的测试,而我希望:

创建一个测试并能够通过 gtest_filter 来仅运行其中一个文件/测试套件。类似这样:

ctest --gtest_filter=*BLAH*

我应该能够在 Windows 和 Linux 中执行此操作。

cmake ctest
1个回答
0
投票

创建单个测试并能够通过 gtest_filter 来仅运行其中一个文件/测试套件。

目前这是不可能的。如果您想在命令行上过滤测试

ctest
提供

-R <regex>, --tests-regex <regex>
                           = Run tests matching regular expression.

因此您可以执行以下操作:

# Runs all test that match the regex BLAH
ctest --test-dir build/ -R BLAH

或者你也可以做相反的事情:

  -E <regex>, --exclude-regex <regex>
                               = Exclude tests matching regular expression.
# Runs all test that do NOT match the regex BLAH
ctest --test-dir build/ -E BLAH
© www.soinside.com 2019 - 2024. All rights reserved.