将托管测试项目添加到现有 C++/CLI 解决方案

Adding Managed Test Project to existing C++/CLI Solution

我正在处理一个遗留项目,该项目是用 C++/CLI 编写的 Windows 应用程序,所有内容都被编译到一个 .exe 文件中。由于我的任务是编写一些数学上复杂的代码,所以我想将单元测试添加到解决方案中。这样做(解决方案 > 添加 > 新项目 > 托管测试项目)并尝试将项目添加为对测试项目的引用时,我收到以下错误:

主项目配置为"Pure MSIL Common Language Runtime support (/clr:pure)",一切似乎都井井有条,但我不断收到错误消息。如何获得包含单元测试框架的解决方案设置?

Google 搜索短语:将单元测试添加到 C++/CLI 项目

正如评论者所回避的那样,在为 C++/CLR 编写测试时不能使用 C++ 测试项目。我们找到的解决方法如下:

  1. 通过“[解决方案] > 添加 > 新建项目 > Visual C++ > CLR > CLR 空项目”创建一个新项目
  2. 在“[项目] > 属性”下将 "Configuration Type" 设置为 "Dynamical Library (.dll)"
  3. 添加对 Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 的引用我们的版本是 14.0.23107.0
  4. 添加对您要测试的解决方案项目的引用
  5. 开始编写相关的单元测试,确保不要 #include headers 来自其他项目,Visual Studio 会为您解决这些问题
  6. 构建解决方案 [Ctrl+Shift+B]
  7. 运行 您的单元测试通过内置的测试资源管理器 [Ctr+R, A]

我们还通过 ReSharper 10.0.2 中的单元测试 Session 验证了测试可以 运行。