Я создаю библиотеку для использования C# HttpClient для вызова стороннего веб-сервиса. Библиотека должна быть совместимой версии Dot Net Core (я использую V2.2) и Dot Net Framework (я использую V461). Я использую Multi-Targeting для моей библиотеки. Я установил ниже в своем файле * .csporj:
<TargetFrameworks>netcoreapp2.2;net461</TargetFrameworks>
<ItemGroup Condition="'$(TargetFramework)' == 'net461'">
<Reference Include="System.Net.Http" />
</ItemGroup>
И я создал проект Unit Test для использования xUnit (2.4.1). Тест (netcoreapp2.2) работает нормально. Но тест (net461) выдает ошибку. Я отладил из моего тестового проекта xUnit в моей библиотеке, заявление
“HttpResponseMessage httpResponse = await _httpClient.SendAsync(httpRequestMessage);”
выдает ошибку. Сообщение об ошибке «Произошла ошибка при отправке запроса», а сообщение InnerException - «Существующее соединение было принудительно закрыто удаленным хостом». ТУПОЙ! Прежде всего, я думаю, что в моих кодах есть какая-то ошибка из-за совместимости версий между Dot Net Core и Dot Net Framework, я попытался выяснить проблему для исследования, например, создать только проект net461, похоже, что xUnit работал, и так далее.
Наконец-то я понял, что это должно быть проблемой xUnit!
Я решил использовать NUnit для создания проекта модульного тестирования, который работает как net Core, так и net Framework. Моя библиотека не ошиблась.
Я надеюсь, что мой опыт поможет разработчикам. а у кого есть решение для xUnit, поделитесь пожалуйста своими вещами! Если есть какие-либо мои ошибки по делу, пожалуйста, дайте мне знать. Я тоже хочу использовать xUnit. Если это проблема xUnit, я надеюсь помочь команде xUnit разобраться. Спасибо.