拥有一个包含MFC项目和用于单元测试的控制台应用程序的解决方案
Having a solution that contains MFC project and console application for unit testing
我有一个包含服务器项目的解决方案(MFC应用程序和其他都是DLL项目)。是否可以添加另一个控制台应用程序项目(BOOST TEST)来单元测试特定的DLL项目,而不修改生产MFC应用程序中的任何内容并成功构建整个解决方案?
我只希望测试控制台应用程序作为后期构建运行,然后启动产品MFC应用程序。
我写了一系列关于C++测试驱动开发的博客文章,向您逐步展示如何使用Visual Studio和Boost.test在C++中进行TDD。对于您的情况,这些步骤几乎相同,只是控制台测试项目依赖于DLL项目,而不是我在文章中使用的静态库项目。
如果我理解正确,您希望解决方案的构建编译并运行测试。如果你说"在调试器中构建并运行"(F5),你想编译所有代码,运行测试,然后在测试通过后运行应用程序。这并不难做到。
按照我的博客文章中的概述设置控制台单元测试程序,这将使单元测试项目作为构建的一部分进行编译和运行。因此,如果您在Visual Studio中说"在调试器中构建并运行"(F5),它将构建解决方案,然后运行启动项目,例如MFC应用程序。由于解决方案包含单元测试控制台可执行项目,因此它将构建该项目。单元测试项目具有执行测试的构建后步骤,因此测试将作为构建的一部分运行。
由于单元测试可执行文件依赖于DLL,因此需要确保可执行文件在运行时找到DLL。在运行测试可执行文件之前,您可能需要在构建后步骤中添加其他命令,以便将DLL复制到必要的目录中。您可以通过将单元测试项目设置为启动项目并在调试器中运行它来验证它是否正常工作。
在配置管理器中仔细检查是否所有项目都已设置为针对您的平台和配置组合构建。有时,如果您在添加新项目时在解决方案中自定义了这些项目,则不会自动检查是否在自定义平台/配置组合中进行编译。
如果这对你不起作用,那么添加评论或编辑你的问题,以包含更多关于什么不起作用的细节。
- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- VC++本机单元测试,找不到调试符号
- 用于交叉编译和CMake的预处理器宏的单元测试
- C++ 用于单元测试的模板模板
- 提升 1.64 单元测试编译失败
- 单元测试欧拉到四元数实现失败
- 运行 C++ 单元测试时LNK2005链接错误
- 禁用自动捕获 Googletest 单元测试中的C++异常
- 有没有办法在不使用 #ifdef 的情况下不编译发布版本中的单元测试函数体?
- 使用 Google Test 对自定义断言函数进行单元测试
- 如何将我的 CMake 项目配置为运行所有单元测试?
- 在Qt C++单元测试中动态加载QQuickWindow而不是QQuickWidget
- MS 本机单元测试 - 断言::线程失败不起作用
- 如何获取 CMake 单元测试的相对路径?
- QTimer 超时不会在单元测试中触发
- 如何在提升构建中设置环境变量以进行提升单元测试框架?
- 在单元测试(Nunit或MSTest)中从C#中调用的C 函数的原因是从控制台应用程序中运行的同一代码的不同结果
- 链接到多个 .obj 以对控制台应用程序进行单元测试
- 拥有一个包含MFC项目和用于单元测试的控制台应用程序的解决方案