首先创造一个 Google Test 项目,这个项目需要引用被测试的项目,如下图:


由于我在 visual studio 中建立的是控制台应用程序,它实际上是一个 .exe 程序,这个时候项目目录下不会有 .dll 或者 .lib ,而是有 .obj ,我们需要像导入其他任何第三方库一样将 .obj 添加到 google test 项目的依赖库目录中。

![](https://img-blog.csdnimg.cn/img_convert/f627a5ae9b7733f4fda1be55083a55de.png

我们在控制台项目中编写了一个 thread 类,此时会生成一个 thread.obj 还有整个项目的 yPlayerServer.obj,这个时候一定要注意,不能将 yPlayerServer.obj 调加到附加依赖库中,因为 我们在主程序中定义了 main 函数,而在 google test 中也定义了main 函数,这会造成 main 函数的重定义。

int main(int argc, char** argv) {
	::testing::InitGoogleTest(&argc, argv);  // 初始化 Google Test  
	return RUN_ALL_TESTS();  // 运行所有测试  
}

由于我们的 therad类是一个模板类,那么类的实现也一定要写在头文件中,包括内联函数也是一样。

不然的话,编译后, google test 会报错找不到定义。

最后程序完美运行:

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐