问题描述
是否可以创建不含通配符的 GoogleTest 过滤器?
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。