lcov和“GCOVR-R”。没有为*.cpp文件生成代码覆盖率报告。
我是googletest框架的新手。我编写了一个UT来测试代码的功能,并在makefiles中使用选项“-fprofile-arcs-ftest-coverage--coverage”和“lgcov”编译了代码。在执行测试用例之后。我能够看到*.gcno和。gcda文件。但没有获得正确的代码覆盖率报告。
步骤1:更新Makefile--&>;“-fprofile-arcs-ftest-coverage--coverage”第2步:构建代码。步骤3:运行测试用例。步骤4:GCOVR-R。
观察者:没有获得执行测试用例*.cpp文件覆盖率。
我在设置测试覆盖率时遇到了一些麻烦,但我最终成功了。虽然我不用你用的工具。
我使用的是Clang++和LLVM工具。我正在使用我自己的基本单元测试框架,它类似于Catch2(但不像Catch2那样功能齐全)。
下面是我运行的命令,如果这对您有帮助的话:
clang++ -Weverything -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-padded -Wno-c99-compat -pedantic -fsanitize=undefined,null -std=c++17 -O0 -g -fprofile-instr-generate -fcoverage-mapping Experiment.cpp
./a.out --test-noisy --test-only
llvm-profdata merge -sparse default.profraw -o default.profdata
llvm-cov show -format=html -tab-size=4 ./a.out -instr-profile=default.profdata Experiment.cpp > default.html
echo '<style>pre { font-family: Monaco, Consolas, monospace; }</style>' >> default.html
我很想在评论中做出回应,但是这个回应太长了,为了便于阅读,需要进行格式化。如果认为不合适(通过投票),我会删除它。