我正在开发一个软件项目,其源代码分布在不同的目录中,某些部分是项目特定的,其他部分是跨项目共享的。
我想测量所讨论的所有源代码的测试覆盖率,但是,我无法正确使用lcov的目录参数。
例如: 存在以下文件:
$HOME/dev/common/src/tools.cpp
$HOME/dev/project/src/project.cpp
测试可执行文件存储在$HOME/dev/project/src/bin/unittest
makefile从$HOME/dev/project/src
我将lcov称为
lcov --base-directory ../../ --directory ../../ --zerocounters -q
${MAKE} test
lcov --base-directory ../../ --directory ../../ -c -o $(BINDIR)/unittests.info
我希望lcov将数据存储为/home/$USER/project/src/common/tools.cpp
然而,我看到输出就像
SF:/home/$USER/project/tools.cpp
因此,genhtml无法找到源,也无法产生任何输出。
所有* .gcda和* .gcno都存储在cpp文件旁边。
我不想在执行命令之前更改目录,因为所有这些都是在makefile中执行的
我错过了什么?
干杯, 迈克尔