c++ - 我可以将 googletest 添加到现有的 Visual C++ 项目吗?
问题描述
我想建立“最佳实践”以及“合理的婴儿步骤”,让遗留项目使用单元测试、现代化和解耦不必要的依赖项。
我发现 googletest 是编写单元测试的合理测试框架。让它在 Visual Studio 中的现有代码上工作太难了。
- googletest 有必要自己做项目吗?
/fooApp/foo/foo.vcxproj
/fooApp/foo.test/foo.test.vcxproj
我发现这需要对测试项目进行许多更改才能正常工作。
- .cpp 文件需要手动添加相对路径
- 预编译头文件和 stdafx.h 与测试项目冲突
未解析的符号需要在测试项目中添加更多代码
- 谷歌测试可以添加到现有项目吗?作为构建配置
这甚至可能吗?我宁愿拥有这个,也不愿在一个新项目中进行。
/foo/fooDoc.h
/foo/fooDoc.cpp
/foo/fooDoc.t.cpp调试
发布
单元测试
任何有关在可视 cpp 项目中使用 googletest 的指导将不胜感激。我可以编写测试,我只是希望配置不那么痛苦。
编辑:这里有一些我尝试过的不同成功的例子
- 将foo.test.vcxproj 与 foo.vcxproj放在同一文件夹中,这将使各种文件夹发生冲突并失败
- 对预编译的头文件使用相同的 stdafx.h,需要添加包含文件夹的路径,需要更改两个项目
- 让stdafx.h包含pch.h,需要 #ifdefs 和其他更改。(缺少 win_sdk_ver)
- 没有发现测试错误。重新开始。
解决方案
推荐阅读
- r - 如何过滤每组每天的第一个事件,根据条件在另一列中选择一个变量,并对中间的值运行计算?
- php - 我想发布状态更新,但它显示为空?
- python - 无法将 RC522 RFID 模块连接到 Raspberry Pi 4
- javascript - 动态读取图像并知道其文件名
- android - Windows 上 Webview 的 Qt QML 后备组件
- r - 为什么 withr::with_seed 和 R.utils::withSeed 在异步代码中使用时会产生不同的结果?
- typescript - TypeScript:从记录中删除项目
- javascript - 唯一标识类实例,只知道它们的类型和构造函数参数
- next.js - 为什么 next.js build 在 dist 目录中生成多个文件?
- php - 使用 trait 的类不能覆盖 trait 的静态属性