我使用lcov和genhtml生成代码覆盖率报告。使用以下目录结构,我可以获得位于tests/目录中的源文件的代码覆盖率,但无法获得src/目录中my_file.c文件的代码覆盖率。
src/
my_file.c
my_file.h
tests/
AllTests.c
CuTest.c
CuTest.h
my_file_tests.c
objects/
AllTests.gcda
AllTests.gcno
AllTests.o
CuTest.gcda
CuTest.gcno
CuTest.o
my_file.gcda
my_file.gcno
my_file.o
my_file_tests.gcda
my_file_tests.gcno
my_file_tests.o
从tests目录调用lcov命令:
lcov -b . --directory objects/ -c -o ./coverage/app.info
Capturing coverage data from objects/
Found gcov version: 4.4.3
Scanning objects/ for .gcda files ...
Found 4 data files in objects/
Processing objects/AllTests.gcda
Processing objects/my_file_test.gcda
Processing objects/CuTest.gcda
Processing objects/my_file.gcda
geninfo: WARNING: gcov did not create any files for /home/me/workspace/project/tests/objects/my_file.gcda!
Finished .info-file creation
最佳答案
从LCOv1.7升级到1.9解决了这个问题。版本1.9可从http://ltp.sourceforge.net/coverage/lcov.php