При попытке перейти с .Net 5 на .Net 6 я получаю сообщение об ошибке ниже, когда выполняю сборку и запуск докеров.
Он отлично работает в .Net 5 VS + в докере. Он отлично работает в .Net 6 VS, но не работает в докере.
Что я сделал:
Изображения, которые я использую:
ОТ mcr.microsoft.com/dotnet/aspnet:база 6.0 AS
ОТ mcr.microsoft.com/dotnet/sdk:6.0-alpine AS тесты
Ошибка, которую я получаю, выглядит следующим образом:
[xUnit.net 00:00:01.87] XXXApi.IntegrationTests.Tests.AssetTests.GivenNoData_WhenGetAllAssets_ReturnEmptyList [FAIL]
Failed XXXApi.IntegrationTests.Tests.AssetTests.GivenNoData_WhenGetAllAssets_ReturnEmptyList [1 ms]
Error Message:
System.IO.DirectoryNotFoundException : /src/XXXApi/
Stack Trace:
at Microsoft.Extensions.FileProviders.PhysicalFileProvider..ctor(String root, ExclusionFilters filters)
at Microsoft.Extensions.FileProviders.PhysicalFileProvider..ctor(String root)
at Microsoft.Extensions.Hosting.HostBuilder.CreateHostingEnvironment()
at Microsoft.Extensions.Hosting.HostBuilder.Build()
at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateHost(IHostBuilder builder)
at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.ConfigureHostBuilder(IHostBuilder hostBuilder)
at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.EnsureServer()
at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.get_Services()
at XXXApi.IntegrationTests.Tests.BaseTests..ctor(CustomWebApplicationFactory`1 factory) in /src/XXXApi.IntegrationTests/Tests/BaseTests.cs:line 24
at XXXApi.IntegrationTests.Tests.AssetTests..ctor(CustomWebApplicationFactory`1 factory) in /src/XXXApi.IntegrationTests/Tests/AssetTests.cs:line 12
Results File: /src/TestResults/testresults.trx
Он даже не доходит до теста. Не удается инициализировать саму эту WebApplicationFactory. Тест прост, просто getasync на одном API.
Не могли бы вы предоставить минимальный воспроизводимый пример?
Интеграционное тестирование немного изменилось с WebApplicationFactory в .NET 6 из-за «отсутствия» запуска. Следуйте новой инструкции здесь: https://docs.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-6.0#basic-tests-with-the-default-webapplicationfactory
Кроме того, попробуйте скопировать отсутствующий вывод проекта на тестовый слой COPY --from=build /out ./XXXApi/
С уважением
А твой тест?