拥有包含用于单元测试的 MFC 项目和控制台应用程序的解决方案
Having a solution that contains MFC project and console application for unit testing
我有一个包含几个项目的解决方案(一个 MFC 应用程序和其他的是 DLL 项目)。是否可以添加另一个控制台应用程序项目 (BOOST TEST) 以对特定 DLL 项目进行单元测试,而无需修改生产 MFC 应用程序中的任何内容并成功构建整个解决方案?
我只希望测试控制台应用程序 运行 作为 post 构建,然后启动生产 MFC 应用程序。
我在 test-driven development in C++ 上写了一系列博客 post,逐步向您展示如何使用 Visual Studio 和 Boost.Test 在 C++ 中执行 TDD。这些步骤几乎与您的情况相同,除了您的控制台测试项目依赖于 DLL 项目而不是我在文章中使用的静态库项目。
如果我对您的理解正确,您希望解决方案的构建能够编译并 运行 测试。如果你说 "build and run in the debugger" (F5),你想编译所有代码,运行 测试,然后 运行 如果测试通过则应用程序。这并不难做到。
按照我的博客 post 中的概述设置控制台单元测试程序,这将使单元测试项目编译并 运行 作为构建的一部分。因此,如果您在 Visual Studio 中输入 "build and run in the debugger" (F5),它将构建解决方案,然后 运行 启动项目,例如您的 MFC 应用程序。由于解决方案包含单元测试控制台可执行项目,因此它将构建该项目。单元测试项目有 post-build 步骤来执行测试,因此测试将 运行 作为构建的一部分。
因为您的单元测试可执行文件依赖于 DLL,您需要确保可执行文件在 运行 时找到 DLL。您可能需要在 post-build 步骤中添加额外的命令,以便在 运行 测试可执行文件之前将 DLL 复制到必要的目录。您可以通过将您的单元测试项目设置为启动项目并 运行 在调试器中启用它来验证它是否正常工作。
在配置管理器中仔细检查所有项目都设置为针对您的平台和配置组合构建。有时,如果您在添加新项目时在解决方案中自定义了这些,则不会自动检查以在自定义 platform/configuration 组合中编译。
如果这对您不起作用,请添加评论或编辑您的问题以包含有关不起作用的更多细节。
我有一个包含几个项目的解决方案(一个 MFC 应用程序和其他的是 DLL 项目)。是否可以添加另一个控制台应用程序项目 (BOOST TEST) 以对特定 DLL 项目进行单元测试,而无需修改生产 MFC 应用程序中的任何内容并成功构建整个解决方案?
我只希望测试控制台应用程序 运行 作为 post 构建,然后启动生产 MFC 应用程序。
我在 test-driven development in C++ 上写了一系列博客 post,逐步向您展示如何使用 Visual Studio 和 Boost.Test 在 C++ 中执行 TDD。这些步骤几乎与您的情况相同,除了您的控制台测试项目依赖于 DLL 项目而不是我在文章中使用的静态库项目。
如果我对您的理解正确,您希望解决方案的构建能够编译并 运行 测试。如果你说 "build and run in the debugger" (F5),你想编译所有代码,运行 测试,然后 运行 如果测试通过则应用程序。这并不难做到。
按照我的博客 post 中的概述设置控制台单元测试程序,这将使单元测试项目编译并 运行 作为构建的一部分。因此,如果您在 Visual Studio 中输入 "build and run in the debugger" (F5),它将构建解决方案,然后 运行 启动项目,例如您的 MFC 应用程序。由于解决方案包含单元测试控制台可执行项目,因此它将构建该项目。单元测试项目有 post-build 步骤来执行测试,因此测试将 运行 作为构建的一部分。
因为您的单元测试可执行文件依赖于 DLL,您需要确保可执行文件在 运行 时找到 DLL。您可能需要在 post-build 步骤中添加额外的命令,以便在 运行 测试可执行文件之前将 DLL 复制到必要的目录。您可以通过将您的单元测试项目设置为启动项目并 运行 在调试器中启用它来验证它是否正常工作。
在配置管理器中仔细检查所有项目都设置为针对您的平台和配置组合构建。有时,如果您在添加新项目时在解决方案中自定义了这些,则不会自动检查以在自定义 platform/configuration 组合中编译。
如果这对您不起作用,请添加评论或编辑您的问题以包含有关不起作用的更多细节。