googletest - Linux上的googletest项目结构
问题描述
googletest
将源代码(例如googletest-release-1.8.1.tar.gz
)保留为 C++ 项目的一部分并在每次test
调用目标时构建它是一个好主意吗?
我的 Linux 发行版两者都有gtest
,gmock
但并非所有发行版都有。此外,现在两者gtest
都gmock
在单个 repo umberella https://github.com/google/googletest下,因此我不确定将来会如何gtest
以及gmock
会是什么样子。将googletest
源代码作为项目的一部分可能会解决我的担忧。但我不确定它是否符合 C++ 最佳实践。我在 Linux 中找不到任何推荐的方法。
解决方案
构建 googletest 作为测试目标的先决条件是常见的做法。对于 CMake 管理的项目,Googletest 记录了如何合并到现有的 CMake 项目中。对于 autotools 管理的项目,如何在通过 autotools 构建的项目中使用 Google Test? 在 SO 上有一个备受推崇的解决方案。
将 googletest 构建为项目测试套件的先决条件可确保项目的下游用户构建和运行测试所使用的 googletest 代码与您在上游构建和运行的代码相同。它确保 googletest 使用与被测代码相同的编译和链接选项构建。
这些优势的代价是可以接受的,因为 Googletest 是一个廉价的构建目标,它的唯一依赖项是 C++ 工具链和 pthreads(甚至 pthreads 也是可选的)。
推荐阅读
- python - 迭代非插值符号数组python等效
- postgis - 如何从postgis中的缓冲点集合制作多边形
- mysql - MySQL 优化连接
- ios - 更新 MKMapRect 扩展的 Swift 语法
- vba - IIf 在 IIf 内分配变量值
- python-3.x - 来自脚本的 zgrep S3 存储桶
- javascript - Spotfire HTML 表格 - 具有变量值的条件格式
- html - 如何在 CSS 中使脱节图像的大小相同?
- python - 多游标数据库连接 Python
- teamcity - Teamcity buildpath 更改 nativescript 项目名称