XUnit - InvalidOperationException: корень решения не может быть найден с использованием корня приложения - PullRequest
0 голосов
/ 02 февраля 2019

У меня есть проект Web-API .NET Core 2.2, и я пытаюсь выполнить интеграционные тесты на нем.

Я следовал руководству Microsoft .Тесты проходят при запуске их из тестового прогона и из командной строки, они должны быть правильно настроены, я могу вызывать контроллеры через WebApplicationFactory - HTTP-клиент.Я отключил теневое копирование через xunit.runner.json Пока все хорошо.

Я пытаюсь использовать Azure DevOps для развертывания моего проекта, и на этапе выпуска я добавил шаг теста, который берет артефакт сборки, загружает его и запускает тест.В основном, реплицированные на локальном компьютере, это будет выглядеть так:

dotnet publish testProject.csproj <path_on_disk>
cd <path_on_disk>
vstest.console.exe testProject.dll

При запуске тестов из опубликованной папки я получаю следующую ошибку

Failed   wInvoiceIntegrationTests.Controllers.Authentication.AuthenticationControllerTests.AuthenticationController_Register_InputDoesNotRespectsModel_DoesNotRegistersUser(email: "abcd@@.com", password: "Abcdefgh1")
Error Message:
 System.InvalidOperationException : Solution root could not be located using application root C:\Users\mihai\Desktop\publish\.
Stack Trace:
   at Microsoft.AspNetCore.TestHost.WebHostBuilderExtensions.UseSolutionRelativeContentRoot(IWebHostBuilder builder, String solutionRelativePath, String applicationBasePath, String solutionName)
   at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.SetContentRoot(IWebHostBuilder builder)
   at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.EnsureServer()
   at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateDefaultClient(DelegatingHandler[] handlers)
   at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateClient(WebApplicationFactoryClientOptions options)

У меня нет статических файловчто я должен служить, и я не хочу, я просто пытаюсь проверить контроллер.Путь правильный, вот где находятся тестовые библиотеки и проектные библиотеки.

Тем временем мне удалось запустить тесты на Azure на этапе сборки с помощью

ls *Tests*/*.csproj | xargs -L1 dotnet test --logger:trx

Любые идеи о том, как преодолеть это и запустить тесты из папки публикации?

Редактировать: В основном запуск тестов из командной строки в выходном каталоге и из проводника тестов VS в порядке,но запуск из общедоступного каталога не в порядке.

...