19

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

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

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

4

1 回答 1

1

您可以从命令行执行“ctest -VV”,如果所有测试都是使用 add_test 创建的,则所有测试都将执行。

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

add_custom_target(run_tests
   COMMAND "ctest -VV" )

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

于 2017-08-17T12:46:04.877 回答