ASP.NET Core MVC集成测试报错:找不到testhost.deps.json,配置无效
解决ASP.NET Core MVC集成测试找不到testhost.deps.json的问题
以下是几个经过验证的解决思路,按优先级尝试:
修正测试项目的项目引用配置
打开测试项目的.csproj文件,确保对主项目的引用包含正确的资产设置,这样主项目的输出文件才能被正确复制到测试项目目录:<ItemGroup> <ProjectReference Include="..\My_Project\My_Project.csproj" PrivateAssets="all" IncludeAssets="runtime; build; native; contentfiles; analyzers; buildtransitive" /> </ItemGroup>彻底清理并重新编译
- 执行VS中的
生成 -> 清理解决方案 - 手动删除所有项目下的
bin和obj文件夹(避免增量编译残留) - 重新生成整个解决方案,确保主项目和测试项目都编译成功
- 执行VS中的
对齐测试项目与主项目的目标框架
检查测试项目.csproj中的TargetFramework是否和主项目完全一致,比如主项目是net7.0,测试项目也要设置为:<TargetFramework>net7.0</TargetFramework>框架版本不匹配会导致文件复制路径错误,找不到目标文件。
确认WebApplicationFactory的配置
如果使用WebApplicationFactory进行集成测试,确保它正确指向主项目的程序集:public class MyTestFactory : WebApplicationFactory<Program> // Program是主项目的入口类 { protected override IHost CreateHost(IHostBuilder builder) { // 强制指定主项目的内容根目录 builder.UseContentRoot(Path.GetDirectoryName(Assembly.GetAssembly(typeof(Program)).Location)); return base.CreateHost(builder); } }直接使用
WebApplicationFactory<主项目.Program>是最稳妥的方式,确保测试能定位到正确的输出文件。临时关闭增量编译
增量编译可能导致文件复制不完整,在主项目的.csproj中添加以下配置关闭它,清理重新编译后测试:<PropertyGroup> <IncrementalBuild>false</IncrementalBuild> </PropertyGroup>问题解决后可以重新开启增量编译。
内容的提问来源于stack exchange,提问作者Gustave KUETENANG
相关产品推荐
相关产品推荐

