为什么Google测试会自动执行未经选择的测试用例?

时间:2013-09-11 09:34:46

标签: c++ visual-studio-2010 googletest

我创建了一个GUI来选择测试用例。测试用例在Google Test Framwework中完成。这里的问题是如果我选择一个测试用例,那么另一个看起来几乎相似的测试用例就是被选中并自动执行,如下所示,

TEST_F(ClassName, Test1){}
TEST_F(ClassName, Test2){}

如果我选择ClassName,那么它只运行属于ClassName类的测试用例。 如果我有类名,

,则会出现问题
class ClassNameXYZ{};
TEST_F(ClassNameXYZ, TestA){}
TEST_F(ClassNameXYZ, TestB){}

因此,在GUI中我得到tree like

  ClassName
       |_Test1
       |_Test2
  ClassNameXYZ
       |_TestA
       |_TestB
.....
.....

如果我选择ClassName,那么它也会运行ClassNameXYZ。 但是,当我选择ClassNameXYZ时,它不会运行ClassName

所以我想知道ClassNameXYZ被执行因为substring ClassName存在于其中? 如果是这样,那么如何摆脱这个问题呢? 请帮帮我。

1 个答案:

答案 0 :(得分:0)

找到答案here ... 但我非常不高兴,谷歌测试正在这样运行。

• ./foo_test --gtest_filter=*Null*:*Constructor* Runs any test whose full name contains either "Null" or "Constructor".

谷歌人应该调查这个问题。因为可能存在4-5个测试用例几乎同名的情况,所以如果你想要一个过滤器,这将是一个大问题。

像。

TestCase
 |_Test1
 |_Test11
 |_Test122
 |_Test1345
 |_Test1346

如果某人过滤了TestCase.Test1,则所有测试用例都会运行,因为所有测试用例都使用TestCase.Test1XXXX