关于c#:将单元测试附加到ASP.NET Core项目

Attach unit tests to ASP.NET Core project

我在vs 2015中创建了一个ASP.NET核心Web应用程序。"添加单元测试"复选框可用于ASP.NET 4.x模板,但当我选择ASP.NET 5模板时,它将灰显。我尝试创建项目,但计划添加自己的单元测试。

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

但是当我选中这个框并点击OK时,我会得到一个对话框,上面写着"无法添加对‘穿山甲网’的引用"。程序集必须具有"dll"或"exe"扩展名才能被引用。"

为什么我不能添加一个ASP.NET核心项目作为引用?这是使它的所有类和方法对我的UnitTest项目可用的唯一方法吗?


项目仍然编译为可以引用的dll,因此,不要引用项目,而是引用核心项目的bin文件夹中的dll。

  • 使用"添加引用,浏览"对话框添加对文件的引用

  • 编辑csproj以使用配置变量,以便它在发布模式下正确构建。例如

  • `

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

  • 不能将ASP.NET 5(ASP.NET核心)项目添加为对.NET Framework.csproj项目的引用(我假定单元测试项目为)。这是当前Visual Studio工具中的一个功能缺口,但将被修复(imho是即将到来的RC2的一部分)。为什么?因为它没有实现;)。

    我还想强调朱利亚诺的回答是正确的。XUnit是.NET和ASP.NET团队选择的框架。

    解决方案:将类作为链接文件包含到CSproj中。这样,您可以编译它两次,然后测试它一次。不是最好的解决方案,而是先解决一段时间,直到工具赶上。