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