Linux 上的 googletest 项目结构
googletest project structure on Linux
将 googletest
源代码(比如 googletest-release-1.8.1.tar.gz
)作为 C++ 项目的一部分并在每次调用 test
目标时构建它是个好主意吗?
我的 Linux 发行版有 gtest
和 gmock
但不是所有发行版都有。此外,如今 gtest
和 gmock
都在单一回购 umberella https://github.com/google/googletest 下,因此我不确定 gtest
和 gmock
将来会是什么样子.将 googletest
源代码作为项目的一部分可能会解决我的顾虑。但我不确定它是否符合 C++ 最佳实践。我在 Linux.
中找不到任何推荐的方法
将 googletest 构建为测试目标的先决条件是常见的做法。
对于 CMake 管理的项目,Googletest 文档 how to incorporate in an existing CMake project。
对于 autotools 管理的项目,
在 SO 上有一个备受推崇的解决方案。
将 googletest 构建为项目测试套件的先决条件可确保 googletest 代码
项目的下游用户构建和运行测试的代码是相同的
你建造的 运行 上游。它确保 googletest 是使用相同的编译构建的
和链接选项作为被测代码。
这些优势是以可接受的成本获得的,因为 Googletest 是一个廉价的构建目标,其唯一的依赖项
是 C++ 工具链和 pthreads(甚至 pthreads 是可选的)。
将 googletest
源代码(比如 googletest-release-1.8.1.tar.gz
)作为 C++ 项目的一部分并在每次调用 test
目标时构建它是个好主意吗?
我的 Linux 发行版有 gtest
和 gmock
但不是所有发行版都有。此外,如今 gtest
和 gmock
都在单一回购 umberella https://github.com/google/googletest 下,因此我不确定 gtest
和 gmock
将来会是什么样子.将 googletest
源代码作为项目的一部分可能会解决我的顾虑。但我不确定它是否符合 C++ 最佳实践。我在 Linux.
将 googletest 构建为测试目标的先决条件是常见的做法。
对于 CMake 管理的项目,Googletest 文档 how to incorporate in an existing CMake project。
对于 autotools 管理的项目,
将 googletest 构建为项目测试套件的先决条件可确保 googletest 代码 项目的下游用户构建和运行测试的代码是相同的 你建造的 运行 上游。它确保 googletest 是使用相同的编译构建的 和链接选项作为被测代码。
这些优势是以可接受的成本获得的,因为 Googletest 是一个廉价的构建目标,其唯一的依赖项 是 C++ 工具链和 pthreads(甚至 pthreads 是可选的)。