You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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>
    
  • 彻底清理并重新编译

    1. 执行VS中的生成 -> 清理解决方案
    2. 手动删除所有项目下的bin和obj文件夹(避免增量编译残留)
    3. 重新生成整个解决方案,确保主项目和测试项目都编译成功
  • 对齐测试项目与主项目的目标框架
    检查测试项目.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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 14:32:17