谷歌测试可执行文件或静态/动态库?
问题描述:
谷歌建议链接到googletest成可执行文件,并执行经由命令行参数的测试。谷歌测试可执行文件或静态/动态库?
我与C#和Java的单元测试框架的工作,喜欢测试运行连续执行多个库/组件的测试。
- 具有较大代码库(许多库)的人如何管理他们的googletests?
- 你有多个可执行文件?你使用shell脚本等?
- 你如何与试验结果的工作?
答
在我们的项目中,我们对某些特定模块(大约60个模块)进行了数百个单元测试,我们正在使用googletest。为了避免在我们的项目的bin目录中有这么多的可执行文件,我们编译了我们的单元测试,但没有链接它我们还为每个单元测试文件创建了* .unit_dep文件,我们在其中指定了链接器的所有依赖关系。
最后,我们写了一个简单的程序,这将打开那些unit_dep文件,在运行期间编译单元测试到共享库中,然后通过dlopen的动态加载的那些库()和通过调用googletest库的main()函数执行。测试完成后,我们删除所有临时* .so文件。
的好处是,我们有它运行所有测试只有一个可执行文件。支付的价格是共享库创建的一些开销时间。