如何向我的跨平台Xamarin项目添加xunit支持?

时间:2017-04-28 18:45:08

标签: .net xamarin xunit

我正在尝试为我的跨平台(Android / iOS / UWP)Xamarin C#项目创建一些单元测试。我对该应用程序的UWP版本的目标是Windows Surface平板电脑。这就是我所做的。

  1. 在Visual Studio 2017社区中,文件:新建:项目,选择跨平台应用程序
  2. 指定空白应用程序,可移植类库(我正在构建的应用程序是PCL,所以我假设单元测试也应该是PCL)
  3. 回答关于目标和问题的问题我的通用Windows应用程序的最低平台版本,我为最小和目标选择了“Windows 10 Creators Update”(我的应用程序需要这个,所以再次尝试使单元测试尽可能与实际应用程序类似)。
  4. 管理NuGet包,请注意Xamarin.Forms有更新(从2.3.4.224到2.3.4.231)。做更新。成功。
  5. 在NuGet包管理器中,选择xunit v2.2.0并单击“安装”。收到此错误:

    无法安装包'xunit.assert 2.2.0'。您正在尝试将此软件包安装到以“.NETPortable,Version = v4.5,Profile = Profile259”为目标的项目中,但该软件包不包含与该框架兼容的任何程序集引用或内容文件。有关更多信息,请与软件包作者联系。

  6. 检查我的项目的属性,看它有很多目标:.NET Framework 4.5,ASP.NET Core 1.0,Windows 8,Windows Phone 3.1,Windows Phone Silverlight 8,Xamarin.Android,Xamarin .iOS,Xamarin.iOS(Classic)和Xamarin.Mac。点击“更改”按钮。

  7. 取消选中Xamarin.Mac,.NET Framework 4.5和ASP.NET Core 1.0。添加对Windows Universal 10.0的检查。单击确定。得到错误:

    项目的目标无法更改。所选目标要求项目选择加入NuGet 3.0支持,但Visual Studio无法自动为您执行此操作。请卸载所有NuGet软件包,然后重试。

  8. 好的,回到NuGet Package Manager,卸载Xamarin.Forms。

  9. 返回“属性”,更改目标,单击“确定”。屏幕闪烁一点然后我回到属性页面(正如预期的那样),并且目标与我请求的不匹配。我的新目标是.NET Framework 4.5.1,Windows 8.1,Xamarin.Android,Xamarin.iOS,Xamarin.iOS(Classic)和Xamarin.Mac。
  10. 返回NuGet Package Manager,重新安装Xamarin.Forms。要求安装xunit。接受许可。
  11. 获取新错误:

    无法安装软件包'System.Runtime.InteropServices.RuntimeInformation 4.0.0'。您正在尝试将此软件包安装到以“.NETPortable,Version = v4.6,Profile = Profile44”为目标的项目中,但该软件包不包含与该框架兼容的任何程序集引用或内容文件。有关更多信息,请与软件包作者联系。

  12. 回到主项目的属性,它仍然说它的目标是.NET Framework 4.5.1,而不是4.6。

  13. 那么我如何让xunit在Visual Studio 2017中使用Xamarin?

1 个答案:

答案 0 :(得分:1)

一种解决方案(也许某人有更好的解决方案):安装xunit版本2.1.0而不是2.2.0。出于某种原因,它的效果更好。