在 App.config 文件中找不到连接字符串

No connection string could be found in the App.config file

Visual Studio解法:

(项目 1)我有一个 ASP .NET Framework API 项目,它使用 Entity Framework 访问数据库。

(项目 2) 现在我创建了调用项目 1 方法的 NUnit 项目。项目 1 的一些方法正在调用 EF 方法,所以:

但是在执行测试方法后我得到:

Test method Test.SchedulerTesting.TestMethod5 threw exception: System.InvalidOperationException: No connection string named 'MyEntities1' could be found in the application config file.

我的app.config(项目2)内容:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </configSections>
    <connectionStrings>
        <add name="MyEntities1" connectionString="provider=System.Data.SqlClient;provider connection string=&quot;data source=**********;initial catalog=******;user id=sa;password=**********;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
    </connectionStrings>
</configuration>

我的 Model.Context.cs(项目 1)第一行:

public partial class MyEntities1: DbContext
{
    public MyEntities1()
        : base("name=MyEntities1")
    {
    }
    //...
}

当您的生产应用程序是 运行 时,应用 app.config 文件。当 运行 在测试运行器下进行测试时,您需要设置一个配置以用于您的测试。它通常包含与您的生产配置相同的内容。

在您的情况下,您需要一个名为 project2.dll.config 的配置文件,以便该配置可用于您的测试。 Visual Studio 不会自动为您重命名 App.config,因为它不知道您要使用 NUnit。

有趣的是,我写的第一个博客 post (2005) 谈到了这个并且有更多细节:http://charliepoole.org/technical/how-nunit-finds-config-files.html