Как запустить автоматические интеграционные тесты с клиентом службы (asp. net core 3.1 с Xunit) - PullRequest
1 голос
/ 13 января 2020

Вопрос:

Как запустить автоматические интеграционные тесты с Xunit и TestServer с клиентом службы, поразив конечные точки службы с помощью TestServer? Суть проблемы заключается в том, как внедрить NuGet в интеграционные тесты, в дополнение к «обычным» интеграционным тестам.

Ожидаемый результат:

Контрольный пример вызовет метод в / в ServiceClient, который снова вызовет конечные точки службы в экземпляре TestServer, выполняя CRUD для БД. Это будет выполняться через ServiceClient, а не через «generi c» HttpClient, созданный TestService.

То, что я пробовал

Интеграционные тесты для фактической службы Конечные точки работают, и вся логика c тестируется от конечной точки до БД.

Я возился с TestServer, пытаясь использовать его параллельно, но он просто не работает. У меня такое ощущение, что он просто не хочет запускать два приложения одновременно.

Я также прочитал много документации и погуглил, но я получаю информацию только о запуске одного сервиса.

Неоднозначность «Клиент»

  • ServiceClient = Клиент, распространяемый как NuGet, который абстрагирует связь с конечными точками службы
  • RestClient = Оболочка / абстракция HttpClient для добавления токена аутентификации в ServiceClient

Структура службы / решения

  • Service.Name (Classlib)
  • Service.Name.Api
  • Service.Name.Client (Classlib, автономный Nuget)
  • Service.Name.Tests (Xunit; модульные и интеграционные тесты)

О клиенте

Используется IConfiguration, настройка и регистрация всех зависимостей (с использованием vanilla DI в asp. net 3.1). Конфигурация (используется для настройки базового URI, аутентификации и т. Д. c.) Используется RestClient / HttpClient для достижения конечных точек службы.

Я действительно не видел никакого очевидного кода для вставьте сюда, но если есть какие-то подробности или нужна дополнительная информация, дайте мне знать, и я обновлю вопрос с тем, что нужно: -)

...