如何让集成测试项目使用不同的连接字符串?

How to have integration test project use a different connection string?

我在 app.config 文件中设置了连接字符串,其中包含用于调试和发布的不同文件 based on this SO answer。我正在设置一个集成测试项目,该项目应该使用不同的初始目录进行测试。如何让项目(并且只有集成测试项目)使用不同的连接字符串?

编辑:尝试添加更多细节。在 app.config 我有以下内容:

在连接字符串中,它有行 initial catalog=MyProgramDB。但是,我希望单元测试改为使用 initial catalog=MyIntegrationTestingDB

我尝试为我可以切换到的测试创建一个单独的配置,但我无法将测试项目更改为除 Debug 或 Release 之外的任何配置。

您没有指定任何代码,所以我将举例说明如何使用 SQL ServerEF 初始化它。

在您的项目启动中,您需要注入连接字符串。

可能是这样的:

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<DbContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("<Name1>"));
}

<Name1> 将是集成测试所需的连接字符串。在另一个项目中,您可能会使用 <Name2>.