eclipseCDT中如何让 “gtest” 的测试函数不在主程序的main()中执行

发布于 2022-08-31 09:20:00 字数 780 浏览 16 评论 0

gtest的调用,我找到的方式都是这样的:

int main(mai nint argc, char **argv) {
  printf("Running main() from gtest_main.cc\n");
  testing::InitGoogleTest(&argc, argv);
  return RUN_ALL_TESTS();
}

需要在main中执行一个RUN_ALL_TESTS()
但原来的主程序也有个main()入口函数,编译没法通过。
所以怎么让gtest的测试不要和main有牵连?
(因为能想到的一个办法就是在,原程序的main 中调用)

然后我做了一些努力:
想到的法一: 新建一个Test项目专门用来测试,编译选项引用原项目的头文件. 但是编译通不过,报”undefined reference to function“ 应该是因为Test项目的程序找不到“原程序”的函数实现。

法二:
多个main函数并存,这个找到了个帖子自己写makefile文件,区分编译。但是这样用也不方便啊。

求个能够在eclipse里右键,run unit test 这种的方法。


补充一:
法一行的通了,就是需要在test的程序里写上

#include "xx.cc"

这样奇怪的语句。另外需要在cdt里添加另一个工程的引用,我想应该直接在compile path里面加上那个cc文件的位置也能行,应该是同一个意思吧。

但是有更好的么?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文