У меня есть проект 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 в порядке,но запуск из общедоступного каталога не в порядке.