Linux上的googletest项目结构

时间:2018-09-22 15:42:04

标签: googletest

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

我的Linux发行版同时包含gtestgmock,但并非所有发行版都包含它们。而且,如今gtestgmock都在单一的回购伞下https://github.com/google/googletest下,因此我不确定gtestgmock的未来情况。将googletest源代码作为项目的一部分可能会解决我的问题。但是我不确定它是否符合C ++最佳实践。我找不到在Linux中执行此操作的任何推荐方法。

1 个答案:

答案 0 :(得分:2)

以googletest作为测试目标的先决条件是常见的做法。 对于CMake管理的项目,Googletest文档how to incorporate in an existing CMake project。 对于自动工具托管的项目,How can I use Google Test with my project that builds via autotools? 在SO方面拥有广受好评的解决方案。

将googletest构建为项目测试套件的前提条件可确保googletest代码 项目的下游用户用来构建和运行测试的代码是相同的 您建立并向上游运行的它确保googletest是使用相同的编译构建的 和链接选项作为要测试的代码。

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