vsperfcmd.exe计算代码覆盖率不准确

时间:2018-05-18 02:53:17

标签: c++ googletest

我在visual studio 2015中使用google测试创建了一个Cpp项目。并使用vsperfcmd计算代码覆盖率,但得到的结果较低,某些代码行未标记为已覆盖。 这是我的代码:

 int FooBar::Max(int a, int b)
    {
        if (a > b)
        {
            return a;
        }
        return b;
    }

这是我的测试用例:

class FooBarTest : public testing::Test
{
public:
    void testMax1()
    {
        FooBar fooBar;
        ASSERT_EQ(fooBar.Max(10, 5) , 10);  
    }
    void testMax2()
    {
        FooBar fooBar;
        ASSERT_EQ(fooBar.Max(1, 2), 2);
    }
};


TEST_F(FooBarTest, testMax1)
{
    testMax1();
}

TEST_F(FooBarTest, testMax2)
{
    testMax2();
}

这是由vsperfcmd标记的代码覆盖率,未涵盖返回b代码行,代码覆盖率为75%: enter image description here

有人可以告诉我为什么或如何解决它。

0 个答案:

没有答案