【发布时间】:2018-09-26 07:58:47
【问题描述】:
我正在使用 lcov 生成覆盖率报告。我有一个包含此内容的跟踪文件(broker.info)(显示相关片段):
$ lcov -r broker.info
...
[/var/lib/jenkins/jobs/ContextBroker-PreBuild-UnitTest/workspace/test/unittests/orionTypes/]
EntityTypeResponse_test.cpp | 100% 11| 100% 6| - 0
...
[/var/lib/jenkins/jobs/ContextBroker-PreBuild-UnitTest/workspace/test/unittests/parse/]
CompoundValueNode_test.cpp | 100% 82| 100% 18| - 0
...
[/var/lib/jenkins/jobs/ContextBroker-PreBuild-UnitTest/workspace/test/unittests/rest/]
OrionError_test.cpp |92.1% 38| 100% 6| - 0
...
[/var/lib/jenkins/jobs/ContextBroker-PreBuild-UnitTest/workspace/test/unittests/serviceRoutines/]
badVerbAllFour_test.cpp | 100% 24| 100% 7| - 0
...
我想删除与test/unittest 文件对应的所有信息。
我尝试使用 -r 选项,根据手册页是:
-r 跟踪文件模式 --删除跟踪文件模式 从跟踪文件中删除数据。
如果您想从跟踪文件中删除特定文件集的覆盖率数据,请使用此开关。额外的命令行参数将被解释为 shell 通配符模式(请注意,它们可能需要相应地转义以防止 shell 先扩展它们)。 tracefile 中的每个文件条目 至少匹配其中一种模式的将被删除。
删除操作的结果将被写入标准输出或 -o 指定的跟踪文件。
一次只能指定-z、-c、-a、-e、-r、-l、--diff 或--summary 之一。
因此,我正在使用
$ lcov -r broker.info 'test/unittests/*' -o broker.info2
据我了解test/unittest/* 匹配test/unittest 下的文件。但是,它不起作用(请注意下面的Deleted 0 files):
Reading tracefile broker.info
Deleted 0 files
Writing data to broker.info2
Summary coverage rate:
lines......: 92.6% (58313 of 62978 lines)
functions..: 96.0% (6451 of 6718 functions)
branches...: no data found
我也尝试过这种变体(结果相同):
$ lcov -r broker.info "test/unittests/*" -o broker.info2
$ lcov -r broker.info "test/unittests/\*" -o broker.info2
$ lcov -r broker.info "test/unittests" -o broker.info2
那么,也许我做错了什么?
我使用的是 lcov 1.13 版(以防数据相关)
谢谢!
【问题讨论】:
标签: code-coverage lcov