我正在创建 boost 单元测试用例,我需要获得相同的代码覆盖率。我打算使用 GCOV 和 LCOV 来获得代码覆盖率。有人可以帮我在 Jamfile 中获取 GCOV 和 LCOV 与 bjam 集成的配置吗?
问问题
360 次
2 回答
2
一个很好的方法是定义一个单独的变体(类似于调试和发布变体)。
这将基于“调试”变体创建一个新的“覆盖”变体,并带有额外的覆盖选项:
variant coverage : debug : <cxxflags>"-fprofile-arcs -ftest-coverage"
<linkflags>"-lgcov" ;
变体方法的优点是覆盖构建将转到单独的目录结构。否则,使用和不使用覆盖选项编译的文件最终将位于相同的目录中,这将导致链接错误。这些通常必须用 来解决bjam -a
,这可以工作,但在覆盖和调试之间切换时需要完全重建,而变体方法则不需要。
要触发覆盖构建,请使用:
bjam variant=coverage
于 2016-04-12T11:43:13.950 回答
1
尝试这个。根据您的要求对其进行编辑。
单元测试 MyTest:MyTest.cpp 库:--std=gnu++0x --profile-arcs --test-coverage --coverage -lgcov 共享:gcov;
于 2015-04-22T04:44:14.807 回答