拥有一个包含MFC项目和用于单元测试的控制台应用程序的解决方案

Having a solution that contains MFC project and console application for unit testing

本文关键字:单元测试 控制台 应用程序 解决方案 用于 有一个 包含 MFC 项目 拥有      更新时间:2023-10-16

我有一个包含服务器项目的解决方案(MFC应用程序和其他都是DLL项目)。是否可以添加另一个控制台应用程序项目(BOOST TEST)来单元测试特定的DLL项目,而不修改生产MFC应用程序中的任何内容并成功构建整个解决方案?

我只希望测试控制台应用程序作为后期构建运行,然后启动产品MFC应用程序。

我写了一系列关于C++测试驱动开发的博客文章,向您逐步展示如何使用Visual Studio和Boost.test在C++中进行TDD。对于您的情况,这些步骤几乎相同,只是控制台测试项目依赖于DLL项目,而不是我在文章中使用的静态库项目。

如果我理解正确,您希望解决方案的构建编译并运行测试。如果你说"在调试器中构建并运行"(F5),你想编译所有代码,运行测试,然后在测试通过后运行应用程序。这并不难做到。

按照我的博客文章中的概述设置控制台单元测试程序,这将使单元测试项目作为构建的一部分进行编译和运行。因此,如果您在Visual Studio中说"在调试器中构建并运行"(F5),它将构建解决方案,然后运行启动项目,例如MFC应用程序。由于解决方案包含单元测试控制台可执行项目,因此它将构建该项目。单元测试项目具有执行测试的构建后步骤,因此测试将作为构建的一部分运行。

由于单元测试可执行文件依赖于DLL,因此需要确保可执行文件在运行时找到DLL。在运行测试可执行文件之前,您可能需要在构建后步骤中添加其他命令,以便将DLL复制到必要的目录中。您可以通过将单元测试项目设置为启动项目并在调试器中运行它来验证它是否正常工作。

在配置管理器中仔细检查是否所有项目都已设置为针对您的平台和配置组合构建。有时,如果您在添加新项目时在解决方案中自定义了这些项目,则不会自动检查是否在自定义平台/配置组合中进行编译。

如果这对你不起作用,那么添加评论或编辑你的问题,以包含更多关于什么不起作用的细节。