【问题标题】:Could not load file or assembly Microsoft.AspNetCore.Mvc.ApiExplorer in my .NET Core unit test project无法在我的 .NET Core 单元测试项目中加载文件或程序集 Microsoft.AspNetCore.Mvc.ApiExplorer
【发布时间】:2019-03-29 00:50:30
【问题描述】:

我在 .NET Core 解决方案中有两个项目:

  • TestWebApp(典型的 ASP.NET Core 2.2 Web 应用程序)
  • 单元测试应用

我的单元测试应用程序抱怨在运行时有许多文件丢失。我想知道为什么这些文件在我认为应该通过TestWebApp 提供/可用时丢失了。

这是 csproj 文件:

TestWebApp

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <LangVersion>latest</LangVersion>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Hellang.Middleware.ProblemDetails" Version="3.0.1" />
    <PackageReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>

....

单元测试项目/应用程序

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>

    <IsPackable>false</IsPackable>

    <LangVersion>latest</LangVersion>
  </PropertyGroup>

  ....

  <ItemGroup>
    <ProjectReference Include="..\TestWebApplication\TestWebApplication.csproj" />
  </ItemGroup>

   ...

这是我现在运行任何单元测试时遇到的第一个错误:

消息:System.IO.FileNotFoundException:无法加载文件或程序集“Microsoft.AspNetCore.Mvc.ApiExplorer,版本=2.2.0.0,文化=中性,PublicKeyToken=adb9793829ddae60”。系统找不到指定的文件

然后我手动将它添加到单元测试项目中,重新编译并运行所有测试,现在我得到这个运行时错误:

消息:System.IO.FileNotFoundException:无法加载文件或程序集“Microsoft.AspNetCore.Razor.Runtime,版本=2.2.0.0,文化=中性,PublicKeyToken=adb9793829ddae60”。系统找不到指定的文件。

所以现在它找不到 另一个 文件 .. 我认为它应该通过 TestWebApp 拉下来?

Nuget 添加该文件 ... 编译 .. 并且测试都运行正常。

那么为什么我需要手动将这两个 nuget 添加到 xunit 测试项目中?

【问题讨论】:

    标签: c# unit-testing asp.net-core


    【解决方案1】:

    遇到了同样的问题,但在阅读Test App Prerequisites part in this document 后它正在工作。

    我在项目文件中遗漏的是:

    使用

    <Project Sdk="Microsoft.NET.Sdk.Web"> instead of <Project Sdk="Microsoft.NET.Sdk"> at the top.
    

    并使用了以下软件包:

    <PackageReference Include="Microsoft.AspNetCore.App" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="2.2.0" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 2022-11-23
      • 1970-01-01
      • 2019-01-31
      • 2017-03-13
      • 2023-01-17
      相关资源
      最近更新 更多