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

 Hb何逸秋yB 发布于 2022-11-07 16:51

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文件的位置也能行,应该是同一个意思吧。

但是有更好的么?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有