【问题标题】:Some code is not removed from the code coverage某些代码未从代码覆盖范围中删除
【发布时间】:2019-02-01 13:56:58
【问题描述】:

我想为我的 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 的覆盖范围。

我错过了什么?

【问题讨论】:

    标签: c++ qt code-coverage lcov


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-12
      • 1970-01-01
      • 2022-06-14
      • 1970-01-01
      • 2019-09-24
      • 2016-03-21
      • 2016-03-29
      相关资源
      最近更新 更多