如何在cmake中进行代码覆盖

时间:2015-06-10 17:16:37

标签: cmake ctest

我想在我的cmake项目中使用代码覆盖工具(lcov)。 我在这里阅读了这个例子https://github.com/bilke/cmake-modules/blob/master/CodeCoverage.cmake 使用'add_test()'cmake函数在我的项目中添加测试。

我想创建一个名为'test_coverage'的自定义目标,在调用执行时应运行所有测试,收集其覆盖数据并在目录'code_coverage'中生成html(使用genhtml)。

有没有办法可以获得项目及其目录路径中所有测试的列表,这样在自定义目标'test_coverage'中我可以单独执行每个测试并收集其覆盖数据?

1 个答案:

答案 0 :(得分:1)

您可以执行&#c; -testVV'从命令行,如果所有测试都是使用add_test创建的,则所有测试都将执行。

如果您希望自定义构建目标执行相同操作,则可以使用以下代码:

add_custom_target(run_tests
   COMMAND "ctest -VV" )

我有很多用于代码覆盖和单元测试的cmake代码,但是在这里复制/粘贴它没有意义,因为它听起来像你刚刚开始。