저는 자체 호스팅 된 ASP.NET Web API 구현을 만들어 SpecFlow 테스트에서 실행하려고합니다.Specflow 및 HttpSelfHostServer
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;
예외입니다 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
테스트 실행 모든 통화를 방지하기 위해 보인다 내 사양에 따라서
난과 같은 selfhostserver을 발사 단계가 사양이 끝나기 전에 자체 호스팅 API에 연결합니다. 디버깅 할 때 url에 대한 호출을 할 수 있지만 테스트가 끝날 때까지 중단됩니다. 완료되면 좋은 반응을 얻습니다.
나는이 코드를 완벽하게 실행하는 콘솔 앱을 만들었으며 예상되는 결과를 제공합니다.
HttpSelfHostServer에서 테스트하는 SpecFlow 테스트 스위트를 사용하거나 SpecFlow 제품군에서 자체 호스팅 WebApi를 얻는 방법에 대해 알고 싶습니다.
언제 이것을 발사하고 있습니까? Given 바인딩 안에 있습니까? – AlSki
@Alski, 여러 SpecFlow 세그먼트를 넣으려고했습니다. BeforeScenario에서, 주어진 단계에서 HttpClient를 사용하는 호출이 뒤따라 오거나, 하나의 단일 시점에 모든 것을 쏟아 붓습니다. 모든 경우에 동일한 효과가 있습니다./ MSTest에서도 동일한 효과가 나타나는 것처럼 보이므로 SpecFlow가 아닐 수도 있습니다. –