Запуск проекта api в качестве фонового процесса C#

#c# #testing

#c# #тестирование

Вопрос:

Я настраиваю тест в проекте, с которым я работаю. Предполагается, что тест будет использовать два веб-api и одну функцию Azure, которые находятся в том же решении, что и тестовый проект. Вместо того, чтобы запускать все эти процессы перед запуском теста, есть ли способ запустить эти 3 проекта в фоновом режиме при запуске теста на вашем локальном компьютере?

Я осмотрелся и нашел «HostingEnvironment» интересным, но я не думаю, что это покрывает мои потребности. Если кто-нибудь может указать мне правильное направление, я был бы признателен.

Комментарии:

1. Вы можете настроить их как службу, чтобы они всегда выполнялись. Затем вам необходимо установить связь с процессами, что может быть сделано либо с использованием сокетов (TCP или UDP), либо с созданием каналов (streams) для IP в процессах.

2. Контроллеры Web API могут быть тестами, просто создавая их экземпляры и передавая любые требуемые параметры в конструкторе. Нет причин запускать всю службу только для тестирования одного действия контроллера.

3. @jdweng, Под сервисом вы подразумеваете, что мне нужно настроить его как локальную службу на моем собственном компьютере? Я взгляну на связь TCP и UDP.

4. Не могу определить, где выполняется код из описания.

Ответ №1:

Я думаю, вам нужно создать сервис для вашего API.

 sc create YourAPI binPath="C:.....exe" start=auto type=own
  

Документы Microsoft — Sc create