Исключение выводится в окне отладки, что-то вроде этого:
vstest.executionengine.x86.exe Ошибка: 0: Ошибка при закрытии веб-сокета: System.Net.WebSockets.WebSocketException (0x80004005):Произошла внутренняя ошибка WebSocket.Пожалуйста, смотрите innerException, если присутствует, для более подробной информации.---> System.cancellationToken)
Есть еще, я их просто вырезал.
Я пытаюсь написать интеграционный тест для моего сервера и клиента SignalR.
Вот 2 простых тестовых случая:
[TestMethod]
public void It_Should_Allow_Register()
{
using (var server = WebApp.Start<Startup>("http://+:61744"))
{
var client = GetConnectedClient();
Assert.IsTrue(client.IsConnected);
DisposeClients(client);
}
}
[TestMethod]
public void It_Should_Allow_MultipleClients()
{
using (var server = WebApp.Start<Startup>("http://+:61744"))
{
var client1 = GetConnectedClient();
Assert.IsTrue(client1.IsConnected);
var client2 = GetConnectedClient();
Assert.IsTrue(client2.IsConnected);
DisposeClients(client1, client2);
}
}
У меня есть другие тестовые случаи, но идея в том, что каждый тест вызовет автономный сервер Owin в памяти и создастодин или несколько клиентов подключаются к нему, а затем безопасно отключают всех клиентов после выполнения бизнес-логики.
К сожалению, если я запускаю по одному тесту за раз, он работает нормально.Но если я запускаю их все вместе, то выводится эта надоедливая исключительная ситуация WebSocketException.
Похоже, что контрольный пример выполнен нормально.Я распечатываю запрос и ответ (при вызове функции сервера SignalR) в отладке.Все нормально исключение, исключение в трассировке отладки.
Я нашел это сообщение: Исключение SignalR Websocket при закрытии клиента
, поэтому без причины я добавил
Connection.Stop(TimeSpan.FromSeconds(3000));
Соединение является HubConnection.
Это все то же самое.
Честно говоря, неужели мне все равно, уверен ли я, что вся бизнес-логика в моих тестах выполнена?