Проведение юнит-тестов по конвейерам, которые требуют привязки порта - PullRequest
0 голосов
/ 14 января 2020

У меня есть конвейер Azure, который строит проект NET Core 3.0. Он работает на агенте Ubuntu-18.04. Сначала публикуется репозиторий с компонентом dotnet publish. Затем он пытается запустить компонент dotnet test для запуска интеграционных тестов в рамках проекта. Если эти тесты пройдены, то он отправляет сборку в развертывание.

Однако это приложение является веб-сервером, который хочет привязаться к порту (443 для SSL). Поэтому неудивительно, что когда я пытаюсь запустить свои модульные тесты на агенте, я получаю:

Активный тестовый запуск был прерван. Причина: сбой процесса тестирования хоста: необработанное исключение. System. Net .Sockets.SocketException (13): в системе отказано в разрешении. Net .Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException (ошибка SocketError, String callerName) в System. Net .Sockets.Socket.DoBind EndPoint (EndPointPoint SocketAddress socketAddress) в System. Net .Sockets.Socket.Bind (EndPoint localEP) в System. Net .Sockets.TcpListener.Start (отставание Int32) в System. Net .Sockets.TcpListener.Start () в SimpleHttpServer.HttpServer.Listen () в SimpleHttpServer.REST.RESTServer. <> c. d.MoveNext ()

... когда тесты пытаются привязать TcpListener к необходимому порту.

Как я могу решить эту проблему? Могу ли я разрешить агенту конвейера каким-либо образом связываться с этим сокетом?

Для пояснения - речь идет об агенте, который создает и развертывает проект, , а не Azure служба, которая запускает развернутая версия.

...