Не удалось загрузить файл или сборку Microsoft.AspNetCore.Mvc.ApiExplorer в моем проекте модульного тестирования .NET Core - PullRequest
0 голосов
/ 29 марта 2019

У меня есть два проекта в решении .NET Core:

  • TestWebApp (типичное веб-приложение ASP.NET Core 2.2)
  • Приложение модульного тестирования

Мое приложение модульного тестирования жалуется во время выполнения , что отсутствует ряд файлов.Мне интересно, почему эти файлы отсутствуют, когда я думал, что они должны быть предоставлены / доступны через 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'.Система не может найти указанный файл

Итак, я вручную nuget добавляю это в проект модульных тестов, перекомпилирую и запускаю все тесты, и теперь я получаю эту ошибку времени выполнения:

Сообщение: System.IO.FileNotFoundException: не удалось загрузить файл или сборку 'Microsoft.AspNetCore.Razor.Runtime, версия = 2.2.0.0, культура = нейтральная, PublicKeyToken = adb9793829ddae60'.Система не может найти указанный файл.

Так что теперь она не может найти другой файл ... который, как я думал, должен был быть удален через TestWebApp?

Nuget добавляет этот файл ... компилирует .. и все тесты запускаются ОК.

Так почему мне нужно было вручную добавить оба этих нюгетера в проект теста xunit?

1 Ответ

1 голос
/ 15 мая 2019

Возникла та же проблема, но после прочтения Необходимые условия тестирования приложения в этом документе оно работало.

Что я пропустил в файле проекта:

Использование

<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" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...