创建一个没有通配符的 gtest 过滤器

Create a gtest filter without wildcard

是否可以创建不带通配符的 GoogleTest 过滤器?

我有一个测试套件 TestSuiteA

TEST_P(TestSuiteA, Blabla) {
   // ...
}

INSTANTIATE_TEST_CASE_P(Apple, TestSuiteA, testing::Combine(...));

INSTANTIATE_TEST_CASE_P(Ananas, TestSuiteA, testing::Combine(...));

还有第二个测试套件 TestSuiteB

TEST_P(TestSuiteB, Kokoko) {
   // ...
}

INSTANTIATE_TEST_CASE_P(Apple, TestSuiteB, testing::Combine(...));

INSTANTIATE_TEST_CASE_P(Ananas, TestSuiteB, testing::Combine(...));

我清楚地知道我要启动哪些测试,所以我不想使用通配符。

我的过滤器

Apple/TestSuiteA:Apple/TestSuiteB

但它不起作用 -> 0 次测试启动

但是有了这个

Apple/TestSuiteA.*:Apple/TestSuiteB.*

有效

这个 .* 是什么意思,为什么没有它就不能工作?

谢谢

每个测试都需要有一个唯一的名称,而您没有提供完全正确的名称。这就是为什么没有测试 运行。确保您知道测试的确切命名方式 - 您可以使用 --gtest_list_tests 列出给定测试可执行文件中定义的所有测试用例。然后使用 --gtest_filter: 分隔的确切名称。要详细了解如何 运行 进行多项测试,请参阅 gtest advanced documentation