Интеграционное тестирование ASP.NET Core с .NET Framework — не могу найти deps.json< /p>
https://zimmergren.net/unable-to-find-d ... re-devops/
Поэтому я пытаюсь напишите несколько интеграционных тестов для dotnet 6. Однако моя WebApplicationFactory выдает следующую ошибку:
System.InvalidOperationException: Can't find
'/repos/subscription-info-api/tests/SubscriptionInfoApi.Tests.Integration/bin/Debug/net6.0/...
System.InvalidOperationException Не могу найти
'/repos/subscription-info-api/tests/SubscriptionInfoApi.Tests.Integration/bin/Debug/net6.0/testhost.deps.json'.Этот файл необходим для правильного выполнения функциональных тестов. В папке bin исходного проекта
должна находиться копия файла. Если
это не так, убедитесь, что для свойства
PreserveCompilationContext в файле проекта установлено значение true. Например,
'истина'. Чтобы
функциональные тесты работали, их необходимо либо запустить из папки вывода
сборки, либо файл testhost.deps.json из каталога вывода вашего приложения
должен быть скопирован в папку, где находятся тесты. работает.
Распространенной причиной этой ошибки является включение теневого копирования при
выполнении тестов. в
Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory
Код: Выделить всё
1.EnsureDepsFile() at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactoryat
Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory
Код: Выделить всё
1.CreateDefaultClient(DelegatingHandler[] handlers) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactorybaseAddress, DelegatingHandler[]) в
Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory
Код: Выделить всё
1.CreateClient(WebApplicationFactoryClientOptions options) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactoryв SubscriptionInfoApi.Tests.Integration.UnitTest1.Test1() в
/repos/subscription-info-api/tests/SubscriptionInfoApi.Tests.Integration/UnitTest1.cs :line
14 в SubscriptionInfoApi.Tests.Integration.UnitTest1.Test1() в
/repos/subscription-info-api/tests/SubscriptionInfoApi.Tests.Integration/UnitTest1.cs:line
16 в
Xunit. Sdk.TestInvoker
Код: Выделить всё
1.c__DisplayClass48_0.d.MoveNext() in /_/src/xunit.execution/Sdk/Frameworks/Runners/TestInvoker.cs:line 264 --- End of stack trace from previous location --- at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func//src/xunit.execution/Sdk/Frameworks/ExecutionTimer.cs:строка 48 в
Xunit.Sdk.ExceptionAggregator.RunAsync(код Func`1 ) в
//src/xunit.core/Sdk/ExceptionAggregator.cs:line 90
Мой фактический тестовый код чрезвычайно прост:
Код: Выделить всё
[Fact]
public async Task Test1()
{
await using var app = new WebApplicationFactory
();
using var client = app.CreateClient();
var res = await (await client.GetAsync("/alive-test")).Content.ReadAsStringAsync();
Assert.Equal("Alive!", res);
}
Я застрял в попытках отладить это дальше , есть идеи?
Подробнее здесь: https://stackoverflow.com/questions/699 ... tion-tests
Мобильная версия