NUnit可以但XUnit无法在VS2017 VS2019上的多目标项目上测试System.Net.Http方法

时间:2020-01-30 20:44:29

标签: visual-studio httpclient xunit

我创建了一个库,以使用C#HttpClient调用第三方Web服务。
该库必须是兼容版本的Dot Net Core(我使用V2.2)和Dot Net Framework(我使用V461)。
我对我的图书馆使用了多目标定位。我在* .csporj文件中设置以下内容:

<TargetFrameworks>netcoreapp2.2;net461</TargetFrameworks> 
<ItemGroup Condition="'$(TargetFramework)' == 'net461'">
  <Reference Include="System.Net.Http" />
</ItemGroup>

然后我创建了一个单元测试项目以使用xUnit(2.4.1)。
测试(netcoreapp2.2)工作正常。但是test(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团队解决它。
谢谢。

0 个答案:

没有答案