Я создал самостоятельную реализацию ASP.NET Web API и хочу, чтобы это выполнялось в тестах SpecFlow.Specflow и HttpSelfHostServer
Так что в моих Спекуляции я есть шаг стрельбы до selfhostserver как таковой:
var config = new HttpSelfHostConfiguration("http://localhost:9000");
var server = new HttpSelfHostServer(config);
_apiApplication.Start(); //IoC, route-configs etc.
server.OpenAsync().Wait();
var httpClient = new HttpClient();
var response = httpClient.GetAsync(fetchUrl).Result;
Exception, которые происходят на GetAsync-вызов:
Exception : System.AggregateException: One or more errors occurred.
---> System.Net.Http.HttpRequestException: An error occurred while sending the request.
---> System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a receive.
---> System.IO.IOException: Unable to read data from the transport connection
тест-драйву, кажется, чтобы предотвратить любой вызов к самообслуживаемому API до того, как спецификации будут завершены. При отладке я могу позвонить на URL-адрес, но он зависает до завершения тестового прогона. По завершении он дает хороший ответ.
Я также создал консольное приложение, которое отлично работает с этим кодом и дает ожидаемые результаты.
Любой, у кого есть набор тестов SpecFlow, который тестирует HttpSelfHostServer, или любую идею о том, как получить самообслуживаемый WebApi, работающий в пакете SpecFlow?
Когда вы зажигаете это? Является ли он внутри заданной привязки? – AlSki
@Alski, я попытался поставить несколько сегментов SpecFlow. В BeforeScenario, в заданном шаге, за которым следует вызов с использованием HttpClient, или просто сбрасывая все это за один раз. Тот же эффект во всех случаях:/ Я, похоже, получаю тот же эффект и в MSTest перспективе, так что может быть не просто SpecFlow. –