Visual C++项目:最佳单元测试设置
Visual C++ project: best unit test setup
我们这里有一个相当大的C++控制台应用程序,现在应该通过Googletest对其进行单元测试。
我认为将单元测试和测试执行存储在一个单独的项目中是个好主意。两个项目都位于同一个解决方案中。由于测试中的应用程序是作为可执行文件而不是静态库编译的,所以我对如何在测试项目中引用单元测试中的实现代码有些一无所知。
我不想把所有的代码文件都作为现有项放入测试项目中,而且要把现有的可执行文件拆分成一个静态库层和一个相应的"包装"可执行文件也需要做很多工作。
长话短说:如何使用单独的测试项目来测试现有的C++可执行项目,有什么好主意吗?:)
让问题变得更难一点:我必须使用VS2008atm。
我能想到的一种可能性是将主项目中的所有来源作为链接添加到单元测试项目中:
Visual Studio-如何使用相同的源创建两个项目
第二种选择是在主项目中使用post操作,并从命令行将主项目或其某些部分编译到一个库中,该库可以链接到单元测试项目中。通过这种方式,一个"构建"操作将生成一个exe和一个dll/lib文件。
第三个选项,以某种方式结合上面的两个选项:在VS之外管理单元测试项目-从带有测试源的构建脚本(简单批处理文件或scons、make、ant等)编译主项目的源代码,并从命令行执行。
我想你会对感兴趣的
- 链接器错误-链接两个";应用程序";键入项目以便使用谷歌测试
- 链接到multiple.obj以对控制台应用程序进行单元测试
它基本上说,你不接触你的主项目,添加一个构建后操作,将你的obj文件聚合到一个静态lib文件中。然后,您可以将测试项目与这个静态库链接起来。
在我看来,它有很多优点,比如你不修改你的主项目,测试项目总是最新的。。。
相关文章:
- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- VC++本机单元测试,找不到调试符号
- 用于交叉编译和CMake的预处理器宏的单元测试
- C++ 用于单元测试的模板模板
- 提升 1.64 单元测试编译失败
- 单元测试欧拉到四元数实现失败
- 运行 C++ 单元测试时LNK2005链接错误
- 禁用自动捕获 Googletest 单元测试中的C++异常
- 有没有办法在不使用 #ifdef 的情况下不编译发布版本中的单元测试函数体?
- 如何在提升构建中设置环境变量以进行提升单元测试框架?
- 单元测试 - 设置私人成员以获得所需的对象状态
- 通过动态链接和手动设置增强单元测试框架
- 设置单元测试需要多少个项目
- Visual C++项目:最佳单元测试设置
- 在qt单元测试中是否可以用单独的方法设置测试数据?
- CMake:如何设置库的单元测试
- 设置opengl4构建/单元测试服务器
- VS 2013 单元测试不起作用 =设置执行上下文时出现>错误
- 如何单元测试我的类没有任何单元测试框架- visual studio设置