Google在可执行文件或静态/动态库中进行测试?

时间:2011-10-09 12:21:05

标签: c++ unit-testing googletest

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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