相关疑难解决方法(0)

AppSettings.json用于ASP.NET核心中的集成测试

我正在遵循本指南.我Startup在API项目中使用了一个appsettings.json配置文件.

public class Startup
{
    public Startup(IHostingEnvironment env)
    {
        var builder = new ConfigurationBuilder()
            .SetBasePath(env.ContentRootPath)
            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)                
            .AddEnvironmentVariables();
        Configuration = builder.Build();

        Log.Logger = new LoggerConfiguration()
            .Enrich.FromLogContext()
            .ReadFrom.Configuration(Configuration)
            .CreateLogger();
    }
Run Code Online (Sandbox Code Playgroud)

我正在看的特别部分是env.ContentRootPath.我做了一些挖掘,看起来我appsettings.json实际上并没有复制到bin文件夹,但这很好,因为ContentRootPath返回MySolution\src\MyProject.Api\,这是appsettings.json文件所在的位置.

所以在我的集成测试项目中,我有这个测试:

public class TestShould
{
    private readonly TestServer _server;
    private readonly HttpClient _client;

    public TestShould()
    {
        _server = new TestServer(new WebHostBuilder().UseStartup<Startup>());
        _client = _server.CreateClient();
    }

    [Fact]
    public async Task …
Run Code Online (Sandbox Code Playgroud)

c# configuration integration-testing appsettings asp.net-core

18
推荐指数
2
解决办法
1万
查看次数