System.InvalidOperationException: сервер не запущен или веб-приложение не настроено.
Я использую Microsoft.AspNetCore.Mvc.Testing v10.0.0 с функцией сборки сборки xunit v3
Код: Выделить всё
[assembly: AssemblyFixture(typeof(ApiFactory))]
namespace WebApi.Tests.Integration.Fixtures;
public class ApiFactory : WebApplicationFactory, IAsyncLifetime
{
protected override void ConfigureWebHost(IWebHostBuilder builder)
{
builder.ConfigureServices(services =>
{
var descriptor =
services.SingleOrDefault(x => x.ServiceType == typeof(DbContextOptions));
if (descriptor != null)
{
services.Remove(descriptor);
}
services.AddDbContext(options
=> options.UseSqlServer("Server=.;Database=Database;Trusted_Connection=True;"));
services.AddHttpClient("Api", client =>
{
client.BaseAddress = new Uri("http://localhost/api/v1/");
});
});
}
public async ValueTask InitializeAsync()
{
}
public new async Task DisposeAsync()
{
await base.DisposeAsync();
}
}
Код: Выделить всё
public class HealthCheckTests
{
private readonly HttpClient _client;
public HealthCheckTests(ApiFactory factory)
{
_client = factory.CreateClient();
}
[Fact]
public async Task Heath_Check_Success_Test()
{
// arrange
// act
var response = await _client.GetAsync("healthcheck", TestContext.Current.CancellationToken);
// assert
response.StatusCode.Should().Be(HttpStatusCode.OK);
}
}
System.InvalidOperationException: сервер не запущен или веб-приложение не настроено.
Если я закомментирую переопределение, тест пройдет успешно, но я не смогу настроить WebApplicationFactory для своих нужд тестирования.
Изменить
Смотрите трассировку стека ниже.
System.InvalidOperationException: сервер не запущен или веб-приложение не настроено.
в Microsoft.AspNetCore.TestHost.TestServer.get_Application()
в Microsoft.AspNetCore.TestHost.TestServer.CreateHandler()
в Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory
Код: Выделить всё
1.CreateHandler() at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactoryв Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory
Код: Выделить всё
1.CreateDefaultClient(Uri baseAddress, DelegatingHandler[] handlers) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactoryв Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory
Код: Выделить всё
1.CreateClient() at CampaignService.WebApi.Tests.Integration.Tests.HealthCheckTests..ctor(ApiFactory factory) in C:\WebApi.Tests.Integration\Tests\HealthCheckTests.cs:line 14 at InvokeStub_HealthCheckTests..ctor(Object, Spanat System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj, BindingFlags ignoreAttr, связыватель Binder, параметры Object[], культура CultureInfo)
Подробнее здесь: https://stackoverflow.com/questions/798 ... ebapplicat
Мобильная версия