首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在谷歌的C++测试框架中为多个单元测试创建一个二进制文件

在谷歌的C++测试框架中为多个单元测试创建一个二进制文件
EN

Stack Overflow用户
提问于 2015-05-07 11:43:20
回答 2查看 2.5K关注 0票数 3

目前,我有一个test文件夹,每个测试都有多个源文件。在CMake上,我以前为每个源文件定义了一个二进制文件,但是我决定现在将它们合并成一个二进制文件,并使用GTest中的过滤器来选择我想要运行的测试。这些源文件都没有main()函数,但我想GTest框架只是在运行时隐式调用它。

因此,现在我创建了一个测试管理器源文件,它除了一个调用main()RUN_ALL_TESTS()并包含所有测试源文件之外什么都没有。据谷歌( Google )称,这是“最后才能使用的黑客”。

那我应该怎么做呢?我是否真的应该去为我的每个测试源创建头文件,并在其中写入声明,然后在我的测试管理器源代码中包含所有这些头呢?有没有other...easier..。这么做的方法?

EN

Stack Overflow用户

发布于 2015-05-07 13:23:39

将测试所需的所有源文件和头文件包含到一个项目中。您不需要包含一个“主”源文件,除非在gtest初始化之前需要一些特殊的设置。只需将您的测试项目与两个GTest库链接:

代码语言:javascript
复制
-lgtest -lgtest_main

后一个gtest_main库包含基本的main()函数。

这是用GTest Primer:编写main()函数描述的

您可能会遇到这样的情况,即每个测试类都依赖于多个源文件(其他帮助类)。您希望将这些测试类保存在单独的可执行文件中,以便进行清洁测试,以确保每个类只使用所需的文件,而不依赖于其他测试类使用的文件。此解决方案还可减少编译时间。

在这种情况下,您必须创建自己的测试运行程序才能执行所有的测试可执行文件,并可能会打印其中哪些有错误。使用Bash或Python很容易做到这一点。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30100084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档