我想为我的 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/