aqtata
V2EX  ›  C++

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

  •  
  •   aqtata · Jan 14, 2025 · 3364 views
    This topic created in 522 days ago, the information mentioned may be changed or developed.

    目前看到有几种做法:

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

    各位怎么组织的?

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