【问题标题】:Visual C++ project: best unit test setupVisual C++ 项目:最佳单元测试设置
【发布时间】:2013-08-15 09:34:08
【问题描述】:

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

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

我不想将所有代码文件作为现有项目放入测试项目中,将现有可执行文件拆分为静态库层和相应的“包装”可执行文件也需要大量工作。

长话短说:有什么好的想法可以通过使用单独的测试项目来测试现有的 C++ 可执行项目? :)

让问题更难解决:我必须使用 VS 2008 atm。

【问题讨论】:

    标签: c++ unit-testing visual-c++ googletest


    【解决方案1】:

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

    Visual Studio - how to create two projects using the same sources

    第二个选项是在主项目中使用后期操作,并将主项目或它的一部分从命令行编译成一个库,该库可以链接到单元测试项目中。这样,一个“构建”操作将生成一个 exe 和一个 dll/lib 文件。

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

    【讨论】:

    • 好的,谢谢。我想我会采用第三种方法并使用某种构建脚本。
    【解决方案2】:

    我想你会感兴趣的

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

    在我看来它有很多好处,比如你不修改你的主项目,测试项目将永远是最新的,...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-15
      • 1970-01-01
      • 2010-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多