我的工作环境
问题是html中的覆盖率报告告诉析构函数中缺少分支,但析构函数是空的。我也不知道原因。有人能帮我吗?我也尝试用GCC的4.8.0,但结果是一样的

发布于 2017-02-23 17:03:44
我也遇到了同样的问题,我找到了this on stackoverflow。简单地说,有不同类型的析构函数,这取决于您是删除动态分配的对象,还是静态分配的对象析构。
因此,要消除这个缺失的分支覆盖率,您必须创建一个对象
TestClass* a = new TestClass();和
TestClass b;然后确保,它们都被摧毁了,当然,前者
delete a;然后,应该调用这两种类型的析构函数。
发布于 2020-07-03 23:51:43
一个简单的解决方案是将// GCOVR_EXCL_LINE作为注释添加到您的行中,因为您知道行不是同时执行两个分支。我认为这是一个好主意,根据我的理解,没有另一种方法可以强迫GCOV同时使用析构函数的动态分支和非动态分支。
例如:
TestClass *a = new TestClass;
delete a; // GCOVR_EXCL_LINE将delete a;行排除在覆盖率报告之外。
有关更多详细信息,请参见以下内容:https://gcovr.com/en/master/guide.html#exclusion-markers
https://stackoverflow.com/questions/41497545
复制相似问题