C++ Googletests在可执行库还是静态/动态库中?

C++ Googletests在可执行库还是静态/动态库中?,c++,unit-testing,googletest,C++,Unit Testing,Googletest,Google建议将googletest链接到一个可执行文件中,并通过命令行参数执行测试 我曾经使用过C#和Java单元测试框架,并且更喜欢测试运行人员跨多个库/组件连续执行测试 拥有较大代码库(许多库)的人如何管理他们的Google测试 你有多个可执行文件吗?您是否使用shell脚本等 你是如何处理测试结果的 在我们的项目中,我们对某些特定模块(大约60个模块)进行了数百次单元测试,我们正在使用googletest。为了避免在项目的bin目录中有这么多可执行文件,我们编译了单元测试,而没有链接

Google建议将googletest链接到一个可执行文件中,并通过命令行参数执行测试

我曾经使用过C#和Java单元测试框架,并且更喜欢测试运行人员跨多个库/组件连续执行测试

  • 拥有较大代码库(许多库)的人如何管理他们的Google测试
  • 你有多个可执行文件吗?您是否使用shell脚本等
  • 你是如何处理测试结果的

在我们的项目中,我们对某些特定模块(大约60个模块)进行了数百次单元测试,我们正在使用googletest。为了避免在项目的bin目录中有这么多可执行文件,我们编译了单元测试,而没有链接它们。我们还为每个单元测试文件创建了*.unit\u dep文件,其中我们指定了链接器的所有依赖项。

最后,我们编写了一个简单的程序,打开这些单元dep文件,在运行时将单元测试编译成共享库,然后通过dlopen()动态加载这些库,并通过调用googletest库的main()函数来执行。测试完成后,我们将删除所有临时的*.so文件。

好处是我们只有一个运行所有测试的可执行文件。所要付出的代价是创建共享库的一些开销时间