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

2025 年 1 月 14 日
 aqtata

目前看到有几种做法:

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

各位怎么组织的?

3642 次点击
所在节点    C++
8 条回复
stimw
2025 年 1 月 14 日
3
stimw
2025 年 1 月 14 日
2 或 3 ,我是说我这么干,不是指最佳实践
whtwwo1
2025 年 1 月 14 日
1. 自己只测对外提供的接口。对外接口一律使用 interface ( virtual )
2. 测试代码在每个模块下 unit_test 文件夹中,和 src include 并列。
3. 直接链接模块动态库测试,依赖其他模块的接口一律 mock
4. 查看覆盖率,修改
whtwwo1
2025 年 1 月 14 日
5. 提交 commit ,打会重做。
BingoXuan
2025 年 1 月 14 日
测试代码在 tests 文件夹,有专门的 cmake 加载测试。项目用 conan 构建,build 的时候调用 ctest 测试
ptg2008
2025 年 1 月 14 日
撞头像了
aqtata
2025 年 1 月 14 日
目前我用了第 2 ,3 种的结合。
198plus
2025 年 1 月 14 日
这就是 cpp ,n 个库有 n! 个 template object ,还有最优秀的包管理:源码复制。没学明白过 cmake ,慕名来学习一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/1104863

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX