.NET Core解决方案中有两个项目:
我的单元测试应用程序在运行时抱怨 缺少许多文件。我想知道为什么我认为应该通过TestWebApp
提供/提供这些文件时会丢失这些文件。
这是csproj文件:
<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添加该文件...编译..并进行测试,一切正常。
那为什么我需要手动将这两个nuget都添加到xunit测试项目中?
答案 0 :(得分:0)
遇到了同样的问题,但是在阅读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" />