【问题标题】:How can I add xunit support to my cross-platform Xamarin project?如何将 xunit 支持添加到我的跨平台 Xamarin 项目?
【发布时间】:2017-04-28 18:45:07
【问题描述】:

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

  1. 在 Visual Studio 2017 社区的 File:New:Project 中,选择 Cross Platform App
  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(经典)和 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 包管理器,卸载 Xamarin.Forms。

  9. 返回属性,更改目标,单击确定。屏幕闪烁了一下,然后我回到了“属性”页面(如预期的那样),目标与我请求的不匹配。我的新目标是 .NET Framework 4.5.1、Windows 8.1、Xamarin.Android、Xamarin.iOS、Xamarin.iOS(经典)和 Xamarin.Mac。
  10. 返回 NuGet 包管理器,重新安装 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。

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

【问题讨论】:

    标签: .net xamarin xunit


    【解决方案1】:

    一种解决方案(也许有人有更好的解决方案):安装 xunit 版本 2.1.0 而不是 2.2.0。不知为何效果更好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-14
      • 2017-08-20
      • 1970-01-01
      • 2020-02-28
      相关资源
      最近更新 更多