gcovr:在某些情况下无法分析被测试的课程

时间:2017-07-21 11:14:54

标签: c++ windows googletest gcov gcovr

我打算用 gcovr 执行代码覆盖率报告到我用CMake用gtest框架编写的测试。

console.log('JUST TESTING!!!!!!!')

我有2个测试用例。一个使用" TEST" s其他用途" TEST_F" s(a.k.a测试装置)。

没有夹具的测试:

ClassUnderTest.h:

class ClassUnderTest
{
public:
           uint8_t Start(int in_a, int in_b);

    static uint8_t MethodToTest(int a, const uint8_t *b, uint32_t c);
}

使用Fixture进行测试:

TestCase1.cpp:

TEST (Test_Start, MethodToTest_test)
{
    ClassUnderTest       TestObj;

    EXPECT_EQ(TestObj.Start(1,2),0xFF));
}

在这两种情况下都会生成ClassUnderTest.cpp.gcno并且数据内部似乎有效,但是当我以下列方式调用gcovr时:

TestCase2.cpp:
class ClassUnderTest_Test : public ::testing::Test, public ClassUnderTest
{
public:
    virtual void SetUp();
    virtual void TearDown();

    bool TestCase2();
};

bool ClassUnderTest_Test :: TestCase2()
{
    uint8_t retval;
    retval = ClassUnderTest::MethodToTest(1,2,3);

    return retval;
}

TEST_F( ClassUnderTest_Test , MethodToTest_test )
{
    ASSERT_EQ( TestCase2(), true );
}

只有在html报告中找到的TestCase1的覆盖范围,TestCase2覆盖范围在ClassUnderTest.cpp中不可见。

可能是什么问题?

提前谢谢。

0 个答案:

没有答案