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

NUnit测试报错:找不到已配置的'SomeEntities'连接字符串

解决NUnit测试项目找不到连接字符串的问题

以下是几个易忽略的排查点和解决方法:

  • 检查app.config的复制输出设置
    右键NUnit项目中的app.config → 属性 → 确认“复制到输出目录”设置为「如果较新则复制」或「始终复制」。测试运行时会读取输出目录下的配置文件,若app.config未被复制到输出目录,就会出现找不到连接字符串的报错。

  • 确保Entity Framework配置完整
    NUnit项目的app.config中,除了连接字符串,还必须包含EF的核心配置节,示例如下:

    <configSections>
      <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </configSections>
    <entityFramework>
      <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
        <parameters>
          <parameter value="mssqllocaldb" />
        </parameters>
      </defaultConnectionFactory>
      <providers>
        <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
      </providers>
    </entityFramework>
    

    缺少这些配置,即使存在连接字符串,EF也无法正常读取。

  • 核对测试项目的依赖引用
    确认NUnit项目已正确安装与MVC项目版本一致的Entity Framework相关NuGet包(如EntityFramework和EntityFramework.SqlServer)。依赖缺失或版本不匹配会导致EF无法加载配置。

  • 验证连接字符串的准确性
    仔细检查NUnit项目app.config中连接字符串的名称是否完全为SomeEntities(注意部分测试环境可能区分大小写),同时确保EF实体连接字符串格式正确,示例:

    <connectionStrings>
      <add name="SomeEntities" connectionString="metadata=res://*/Models.SomeModel.csdl|res://*/Models.SomeModel.ssdl|res://*/Models.SomeModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=YOUR_SERVER;initial catalog=YOUR_DB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
    </connectionStrings>
    

    EF实体连接字符串需包含metadata部分,不能仅使用普通数据库连接字符串。

  • 排查测试运行路径
    部分测试运行器(如ReSharper测试 runner)可能使用非输出目录作为工作目录,导致读取不到配置文件。可在测试代码中添加调试代码查看当前工作目录:

    Console.WriteLine(System.IO.Directory.GetCurrentDirectory());
    

    检查该目录下是否存在[你的测试项目名].dll.config(app.config编译后的文件名),若不存在,手动复制app.config到该目录测试。

内容的提问来源于stack exchange,提问作者Doug Gardiner

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 23:50:01