我有几个单元测试用例,我是用 Google 测试框架编写的:
测试类:
class Test: public testing::Test
{
public:
virtual void SetUp() {}
virtual void TearDown() {}
};
Run Code Online (Sandbox Code Playgroud)实际测试:
TEST_F(Test, SubTest1)
{
// execute Test logic
}
TEST_F(Test, SubTest2)
{
// execute Test logic
}
TEST_F(Test, SubTest3)
{
// execute Test logic
}
Run Code Online (Sandbox Code Playgroud)假设我只想显示
SubTest1andSubTest3,我必须做什么?重要的是,我想在一个中心位置(主要方法)看到实际执行了哪些测试。
我想,我可以像下面的例子一样“堆叠”过滤器,但这种方法不起作用:
int main(int argc, char** argv)
{
::testing::InitGoogleMock(&argc, argv);
::testing::GTEST_FLAG(filter) = "Test.SubTest1";
::testing::GTEST_FLAG(filter) = "Test.SubTest3";
return RUN_ALL_TESTS();
}
Run Code Online (Sandbox Code Playgroud)
? 第二个过滤器删除了第一个过滤器,仅SubTest3执行。
我试图找到一些官方googletest参考,但我只找到了这篇文章解释了googletest过滤器的语法。如果您想运行与 2 种不同模式之一匹配的测试用例,您的过滤器应如下所示:
"FIRST_PATTERN:SECOND_PATTERN"
Run Code Online (Sandbox Code Playgroud)
所以,在你的情况下:
::testing::GTEST_FLAG(filter) = "Test.SubTest1:Test.SubTest3";
Run Code Online (Sandbox Code Playgroud)
您还可以使用通配符?,*并且可以在-签名后添加排除模式。
| 归档时间: |
|
| 查看次数: |
1157 次 |
| 最近记录: |