Linux 上的 googletest 项目结构

googletest project structure on Linux

googletest 源代码(比如 googletest-release-1.8.1.tar.gz)作为 C++ 项目的一部分并在每次调用 test 目标时构建它是个好主意吗?

我的 Linux 发行版有 gtestgmock 但不是所有发行版都有。此外,如今 gtestgmock 都在单一回购 umberella https://github.com/google/googletest 下,因此我不确定 gtestgmock 将来会是什么样子.将 googletest 源代码作为项目的一部分可能会解决我的顾虑。但我不确定它是否符合 C++ 最佳实践。我在 Linux.

中找不到任何推荐的方法

将 googletest 构建为测试目标的先决条件是常见的做法。 对于 CMake 管理的项目,Googletest 文档 how to incorporate in an existing CMake project。 对于 autotools 管理的项目, 在 SO 上有一个备受推崇的解决方案。

将 googletest 构建为项目测试套件的先决条件可确保 googletest 代码 项目的下游用户构建和运行测试的代码是相同的 你建造的 运行 上游。它确保 googletest 是使用相同的编译构建的 和链接选项作为被测代码。

这些优势是以可接受的成本获得的,因为 Googletest 是一个廉价的构建目标,其唯一的依赖项 是 C++ 工具链和 pthreads(甚至 pthreads 是可选的)。