gpt4 book ai didi

c++ - 生成由单独的测试类调用的 C++ 静态库的测试覆盖率

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:08:14 25 4
gpt4 key购买 nike

我正在使用 QT Creator 在 C++ 中处理一个中型项目。

项目结构基本上是这样的

  1. 项目

    • A组
      • 图书馆A1
    • B组
      • 图书馆B1
      • 图书馆B2
      • ...等等
    • 测试

      • LibA1_Test
      • LibB1_Test
      • LibB2_Test
      • ...等等

库由测试项目中的可执行文件测试。我已经设法在启用 gcov 的情况下自行编译测试,并使用 lcov 生成代码覆盖率报告,但它们显示的覆盖率只是测试用例,而不是我正在测试的实际代码。我也尝试过使用 gcov 编译静态库,但是当我针对这些库运行测试时,它不会生成任何 gcov 输出文件。

如何通过将我的项目库与测试链接起来来生成 gcov 输出文件?我想看看我的单元测试是否有任何漏洞。

最佳答案

来自ld manual

--whole-archive
For each archive mentioned on the command line after the --whole-archive option, include every object file in the archive in the link, rather than searching the archive for the required object files.

因此,使用 --whole-archive 将您的静态库链接到您的测试中,这将导致您的测试二进制文件具有整个静态库,并提供 gcov整个代码的可见性

关于c++ - 生成由单独的测试类调用的 C++ 静态库的测试覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38107459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com