V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
aqtata
V2EX  ›  C++

cmake + googletest 的目录结构最佳实践是?

  •  
  •   aqtata · 4 天前 · 988 次点击

    目前看到有几种做法:

    1. 测试代码在源码中,通过宏区分编译。
    2. 测试代码在工程目录下的 test 文件夹中,引入被测的源文件编译测试。
    3. 把被测代码编译成静态库,在顶层目录下有个 tests 文件夹,链接静态库测试。

    各位怎么组织的?

    8 条回复    2025-01-14 18:35:43 +08:00
    stimw
        1
    stimw  
       4 天前 via Android   ❤️ 1
    3
    stimw
        2
    stimw  
       4 天前 via Android   ❤️ 1
    2 或 3 ,我是说我这么干,不是指最佳实践
    whtwwo1
        3
    whtwwo1  
       4 天前   ❤️ 1
    1. 自己只测对外提供的接口。对外接口一律使用 interface ( virtual )
    2. 测试代码在每个模块下 unit_test 文件夹中,和 src include 并列。
    3. 直接链接模块动态库测试,依赖其他模块的接口一律 mock
    4. 查看覆盖率,修改
    whtwwo1
        4
    whtwwo1  
       4 天前
    5. 提交 commit ,打会重做。
    BingoXuan
        5
    BingoXuan  
       4 天前   ❤️ 1
    测试代码在 tests 文件夹,有专门的 cmake 加载测试。项目用 conan 构建,build 的时候调用 ctest 测试
    ptg2008
        6
    ptg2008  
       3 天前
    撞头像了
    aqtata
        7
    aqtata  
    OP
       3 天前
    目前我用了第 2 ,3 种的结合。
    198plus
        8
    198plus  
       3 天前 via Android
    这就是 cpp ,n 个库有 n! 个 template object ,还有最优秀的包管理:源码复制。没学明白过 cmake ,慕名来学习一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2645 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 04:52 · PVG 12:52 · LAX 20:52 · JFK 23:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.