Visual C++项目:最佳单元测试设置

Visual C++ project: best unit test setup

本文关键字:单元测试 设置 最佳 C++ 项目 Visual      更新时间:2023-10-16

我们这里有一个相当大的C++控制台应用程序,现在应该通过Googletest对其进行单元测试。

我认为将单元测试和测试执行存储在一个单独的项目中是个好主意。两个项目都位于同一个解决方案中。由于测试中的应用程序是作为可执行文件而不是静态库编译的,所以我对如何在测试项目中引用单元测试中的实现代码有些一无所知。

我不想把所有的代码文件都作为现有项放入测试项目中,而且要把现有的可执行文件拆分成一个静态库层和一个相应的"包装"可执行文件也需要做很多工作。

长话短说:如何使用单独的测试项目来测试现有的C++可执行项目,有什么好主意吗?:)

让问题变得更难一点:我必须使用VS2008atm。

我能想到的一种可能性是将主项目中的所有来源作为链接添加到单元测试项目中:

Visual Studio-如何使用相同的源创建两个项目

第二种选择是在主项目中使用post操作,并从命令行将主项目或其某些部分编译到一个库中,该库可以链接到单元测试项目中。通过这种方式,一个"构建"操作将生成一个exe和一个dll/lib文件。

第三个选项,以某种方式结合上面的两个选项:在VS之外管理单元测试项目-从带有测试源的构建脚本(简单批处理文件或scons、make、ant等)编译主项目的源代码,并从命令行执行。

我想你会对感兴趣的

  • 链接器错误-链接两个";应用程序";键入项目以便使用谷歌测试
  • 链接到multiple.obj以对控制台应用程序进行单元测试

它基本上说,你不接触你的主项目,添加一个构建后操作,将你的obj文件聚合到一个静态lib文件中。然后,您可以将测试项目与这个静态库链接起来。

在我看来,它有很多优点,比如你不修改你的主项目,测试项目总是最新的。。。