Я пишу несколько интеграционных тестов. В интеграционных тестах я запускаю веб-сервер для каждого теста. Они работают нормально, но иногда порт, который им нужен (он должен быть одинаковым для каждого теста), не освобождается.
Вот как я его называю:
IHost host = CreateHostBuilder(args, baseUrl).Build();
var runTask = host.RunAsync(cancellationToken);
// Wait till the caller uses the cancellation token.
await runTask;
// This is called when the server is done hosting.
host.Dispose();
Когда каждый тест завершен, он вызывает:
cancellationTokenSource.Cancel(true);
И хотя я могу убедиться, что вызывается host.Dispose (), он не освобождает порт, когда это происходит. В конце концов он освобождается, но это занимает много времени.
Есть ли способ заставить host
освободить порт, который он использует?