首页 > 解决方案 > Linux上的googletest项目结构

问题描述

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

我的 Linux 发行版两者都有gtestgmock但并非所有发行版都有。此外,现在两者gtestgmock在单个 repo umberella https://github.com/google/googletest下,因此我不确定将来会如何gtest以及gmock会是什么样子。将googletest源代码作为项目的一部分可能会解决我的担忧。但我不确定它是否符合 C++ 最佳实践。我在 Linux 中找不到任何推荐的方法。

标签: googletest

解决方案


构建 googletest 作为测试目标的先决条件是常见的做法。对于 CMake 管理的项目,Googletest 记录了如何合并到现有的 CMake 项目中。对于 autotools 管理的项目,如何在通过 autotools 构建的项目中使用 Google Test? 在 SO 上有一个备受推崇的解决方案。

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

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


推荐阅读