NUnit может, но XUnit не может протестировать System. Net .Http-методы в многоцелевом проекте на VS2017 VS2019 - PullRequest
0 голосов
/ 30 января 2020

Я создаю библиотеку для использования 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 разобраться. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...