繁体   English   中英

将单元测试附加到ASP.NET Core项目

[英]Attach unit tests to ASP.NET Core project

我在VS 2015中创建了一个ASP.NET核心Web应用程序。 添加单元测试复选框可用于ASP.NET 4.x模板,但是当我选择ASP.NET 5模板时,它显示为灰色。 无论如何我试图创建项目,计划添加我自己的单元测试。

我在解决方案中添加了另一个项目,但我无法将这两个项目联系起来。 当我右键单击UnitTest项目的引用并单击Add Reference时 ,我可以看到原始项目作为选项。

但是当我选中该框并点击OK时,我会看到一个对话框 ,上面写着“无法添加对'PangolinWeb'的引用。程序集必须有'dll'或'exe'扩展才能被引用。”

为什么我不能添加ASP.NET Core项目作为参考? 这是使我的UnitTest项目可以使用它的所有类和方法的唯一方法吗?

该项目仍然编译为您可以引用的DLL,因此不是引用该项目,而是引用Core项目的bin文件夹中的dll

  1. 使用“添加引用”,“浏览”对话框添加对文件的引用

  2. 编辑csproj以使用变量进行配置,以便正确地在发布模式下构建。 例如

`

<Reference Include="YourLibrary, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\YourLibrary\bin\$(Configuration)\net45\YourLibrary.dll</HintPath>
  </Reference>
  1. 使用解决方案项目构建顺序在dotnetcore库项目之后构建引用项目。

您不能添加ASP.NET 5(ASP.NET Core)项目作为.NET Framework .csproj项目的引用(我假设您的单元测试项目是)。 这是当前Visual Studio工具中的一个功能差距,但将被修复(恕我直言作为即将到来的RC2的一部分)。 为什么? 因为它没有实现;)。

我还要强调Juliano的答案是正确的。 xUnit是.NET和ASP.NET团队的首选框架。

解决方案的想法:将类作为链接文件包含在csproj中。 像这样你可以编译两次并测试一次。 不是最好的解决方案,而是一段时间的解决方法,直到工具将迎头赶上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM