c++ - 某些代码未从代码覆盖率中删除

标签 c++ qt code-coverage lcov

我想为我的 Qt/C++ 项目生成代码覆盖率报告。

我有一个简短的版本,其中一个类继承QObject:

#include <QObject>

class Baba : public QObject {
    Q_OBJECT

public:
    Baba();

    void mange(int a);

signals:
    void pouet();
};

我首先添加这个编译标志:

QMAKE_CXXFLAGS += --coverage
QMAKE_LFLAGS += --coverage

执行测试后,我执行以下步骤:

$ gcov main.cpp
$ lcov --capture --directory . --output-file capture.info
$ lcov --remove capture.info "*Qt*.framework*" "*.h" "*Xcode.app*" "*moc_*" --output-file filtered.info
$ genhtml filtered.info --output-directory out 

不幸的是,尽管我在删除步骤中添加了 "*moc_*",但我仍然覆盖了文件 moc_Baba.cpp

我错过了什么?

最佳答案

检查 lcov source code 后,我设法通过将 "*moc_*" 替换为 "$$OUT_PWD/moc_*" 来删除 moc_* 文件。

关于c++ - 某些代码未从代码覆盖率中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54480987/

相关文章:

c++ - 对于 STL 或 !STL,这是个问题

c++ - 如何初始化vector的模板子类

qt - QT运行时如何在QTimeEdit中设置时间?

perl - Perl 有哪些代码覆盖工具?

mocha.js - babel-istanbul 覆盖从报告中排除文件但保留转译

java - 源代码预览在工作服中不可用

c++ - 精神文法无法编译 : function template argument error?

c++ - 静态库,链接到共享库

c++ - 用C++计算小双数时出错

c++ - QThread 插槽行为