创建一个没有通配符的 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。
是否可以创建不带通配符的 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。