提问人:GrinGenius 提问时间:11/9/2023 最后编辑:GrinGenius 更新时间:11/9/2023 访问量:68
ASP.NET Core 7.0 集成测试找不到参考
ASP.NET Core 7.0 integration tests could not find reference
问:
我有以下项目:
XY.Api
XY.IntegrationTests (I use xUnit)
我添加了对测试项目的引用,并编写了一个这样的基本测试:XY.Api
public class UnitTest1
{
[Fact]
public void Test1()
{
Assert.Equal(1, AsdController.ASD());
}
}
结果如下:
System.IO.FileNotFoundException:无法加载文件或程序集 XY.api,版本=1.0.0.0,区域性=neutral,PublicKeyToken=null'。系统找不到指定的文件。
为什么?
----------编辑--------
如果我运行这个:
[Fact]
public void Test1()
{
List<string> result = new();
foreach (var a in AppDomain.CurrentDomain.GetAssemblies())
{
result.Add(a.Location + " -- " + a.FullName);
}
;
//Assert.Equal(1, UsersController.ASD());
}
在结果列表中不包含 XY。Api.dll ,但在 bin 文件夹中有 XY。Api.dll ...
----- 第二次更新
测试项目 .csproj 文件:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="xunit" Version="2.6.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.3">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="3.2.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\XY.Api\XY.Api.csproj" />
</ItemGroup>
</Project>
答:
0赞
Ali Hemati
11/9/2023
#1
1- 检查项目参考:确保 XY.IntegrationTests 项目已正确链接到 XY。Api 项目。可以通过检查测试项目中的 .csproj 文件来确认这一点,其中应有一个类似于以下内容的条目:
<ItemGroup>
<ProjectReference Include="..\XY.Api\XY.Api.csproj" />
</ItemGroup>
2- 另外,查看生成设置:确保两个项目都设置为以相同的配置生成,例如“调试”或“发布”。如果生成配置不匹配,则可能导致测试项目找不到 API 项目的正确生成。
评论
0赞
GrinGenius
11/9/2023
Holly shit,如果我将测试项目 Build Configuration 修改为 Release 而不是 Debug,它就可以工作了......Api 仍处于调试状态。谢谢。
0赞
Ali Hemati
11/9/2023
我们非常欢迎您:)
上一个:Pact 模拟服务器错误:请求不匹配 - 如何调试?
下一个:Xunit 跳过测试
评论
.csproj