微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

创建不带通配符的 gtest 过滤器

如何解决创建不带通配符的 gtest 过滤器

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

我有一个测试套件 TestSuiteA

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

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

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

还有第二个测试套件 TestSuiteB

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

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

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

我的过滤器

Apple/TestSuiteA:Apple/TestSuiteB

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

但是有了这个

Apple/TestSuiteA.*:Apple/TestSuiteB.*

有效

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

谢谢

解决方法

每个测试都需要有一个唯一的名称,而您没有提供准确的名称。这就是为什么没有运行测试的原因。确保您知道测试的确切名称 - 您可以使用 --gtest_list_tests 列出给定测试可执行文件中定义的所有测试用例。然后使用以 --gtest_filter 分隔的确切名称和 :。要了解有关如何运行多个测试的更多信息,请参阅 gtest advanced documentation

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。