【问题标题】:Can't add ReactiveUI to a NUnit Test Project无法将 ReactiveUI 添加到 NUnit 测试项目
【发布时间】:2015-11-30 14:03:03
【问题描述】:

我目前正在尝试设置 Unit 以使用 NUnit 和 Moq 对我们的 ReactiveUI ViewModel 进行单元测试。但是我无法让它工作。我无法将 ReactiveUI 添加到 NUnit 测试库(无法解析依赖项 'Rx-Xaml (≥ 2.2.5)'),也无法将 Moq 添加到 PCL 项目中。

甚至可以使用 NUnit 和 Moq 对 ReactiveUI ViewModel 进行单元测试吗?

顺便说一句:我在 Mac OSX 10.10.5 上使用 Xamarin Studio,但代码在 Windows 10 上运行良好:(

在 OSX 上我得到一个 Unix 传输错误,但在 Windows 上测试确实有效。

【问题讨论】:

  • 您的目标框架是什么? cf reactiveui nuspec 我认为您需要定位一个 not 参考 Rx-Xaml

标签: unit-testing xamarin nunit moq reactiveui


【解决方案1】:

好的,我知道了,但是如果不手动编辑 csproj 文件,它就无法工作。这里是其他人的快速解释,他们在 Mac 上结合使用 reactui 和 xamarin studio 为 xamarin.android/ios 项目运行测试。

  1. 使用 xamarin.installer 安装 xamarin.mac

  2. 打开您的解决方案并从“Mac”“库”-“统一 API”树中添加一个新库项目。

  3. 删除所有不需要的文件,例如 Main.cs 或 AppDeletage.cs

  4. 打开添加解决方案的Options,在“Build”-“General”下将Target Framework从“Xamarin.Mac Mobile Framework”切换到“Xamarin.Mac .Net 4.5 Framework”。

  5. 添加您的包裹。不要忘记 Nunit 和响应式测试。

  6. 打开新项目的 csproj 文件并将路径部分从 Net45 更改为 Xamarin.Mac10 以获取 Splat 和 ReactiveUI 引用。请参阅示例代码。

    运行你的测试并快乐

损坏的参考文献:

<Reference Include="ReactiveUI">
  <HintPath>..\packages\reactiveui-core.6.5.0\lib\Net45\ReactiveUI.dll</HintPath>
</Reference>
<Reference Include="Splat">
  <HintPath>..\packages\Splat.1.6.2\lib\Net45\Splat.dll</HintPath>
</Reference>`

固定引用:

<Reference Include="ReactiveUI">
  <HintPath>..\packages\reactiveui-core.6.5.0\lib\Xamarin.Mac10\ReactiveUI.dll</HintPath>
</Reference>
<Reference Include="Splat">
  <HintPath>..\packages\Splat.1.6.2\lib\Xamarin.Mac10\Splat.dll</HintPath>
</Reference>

作为参考,这是我们的工作 csproj 文件https://gist.github.com/omares/e4bccf5a90524f2482f9

【讨论】:

  • 按照步骤操作,我收到错误:System.IO.FileNotFoundException:无法加载文件或程序集“系统,版本=2.0.5.0,文化=中性,PublicKeyToken=7cec85d7bea7798e”或其之一依赖关系。有什么想法吗?
【解决方案2】:

这里有同样的问题。它对我们不起作用的原因是在 PortableLibraryStubs 的 PlatformRegistrations 类中。我们在单元测试项目中没有平台实现它,这就是它失败的原因。

这是一个关于如何使事情正常工作的非常肮脏的 hack (https://github.com/OlexaLe/ReactiveUI/commit/c8a8292fde7a0617338110c55bfbf8c7d6947e1d),这是一个用于跟踪的拉取请求 (https://github.com/reactiveui/ReactiveUI/pull/1008) 的链接 - 也许有一天它会出现在 master 中:-)。

希望对您有所帮助。谢谢!

【讨论】:

    猜你喜欢
    • 2021-07-28
    • 2020-09-23
    • 1970-01-01
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    相关资源
    最近更新 更多