Я пытаюсь перенести мой API и интеграционный тест с. NET Core 2.2 на 3.1. После переноса и взлома Microsoft меняет настройку, учитывая, что все работает нормально для API prj. Я попробовал почтальоном.
На этом этапе я пытаюсь перенести мой проект интеграционного тестирования, но после миграции все http-вызовы с параметрами [FromBody] go по ошибке, потому что параметры fromBody всегда равны нулю.
Вот еще немного информации:
. NET Код ядра 2.2:
IWebHostBuilder webHostBuilder = Program.CreateBuilder()
.UseEnvironment(TestEnvironmentName.Get(inMemory: true))
.ConfigureEntityFrameworkForTesting(fixture);
_server = new TestServer(webHostBuilder);
var client = _server.CreateClient();
_client = new FluentClient("http://a", client);
_client.SetHttpErrorAsException(false);
_testHost = TestHostBuilder.Create()
.ConfigureServices(services => services.AddTestServiceBus(_server.Host.Services))
.Build();
_testHost.Run();
. NET Код ядра 3.1:
var hostBuilder = new HostBuilder()
.ConfigureWebHostDefaults(webHost =>
{
// Add TestServer
webHost.UseTestServer();
webHost.UseEnvironment(HostTestEnvironmentName.Get(inMemory: true))
.ConfigureEntityFrameworkForTesting(fixture)
.UseStartup<Startup>();
});
var host = hostBuilder.Start();
var client = host.GetTestClient();
_client = new FluentClient("http://a", client);
_server = host.GetTestServer();
I уже:
- Проверьте, содержит ли клиент https, используемый тестами, «ContentType» как json.
- Попытка удалить беглый клиент и использовать «System. Net .Http.HttpClient».
Теперь мои подозрительные сообщения находятся в этом сообщении, которое я обнаружил при вызове host.GetTestServer ( ). Но это не настоящая ошибка, это не нарушает мою среду выполнения, я просто вижу это с помощью функции быстрого просмотра переменной _server.
Сообщение об ошибке: «Конструктор TestServer не был вызван с IWebHostBuilder, поэтому IWebHost недоступен «. QuickWatchImage
Я не очень уверен, что это связано с моей проблемой, у меня нет идей.