无法将ReactiveUI添加到NUnit测试项目中

时间:2015-09-04 12:03:06

标签: unit-testing xamarin nunit moq reactiveui

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

甚至可以使用NUnit和Moq单元测试ReactiveUI ViewModels吗?

Btw:我在Mac OSX 10.10.5上使用Xamarin Studio,但代码在Windows 10上正常运行:(

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

2 个答案:

答案 0 :(得分:0)

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

这是一个非常糟糕的黑客攻击,如何使事情有效(https://github.com/OlexaLe/ReactiveUI/commit/c8a8292fde7a0617338110c55bfbf8c7d6947e1d),这里有一个链接拉动请求(https://github.com/reactiveui/ReactiveUI/pull/1008)进行跟踪 - 也许有一天这将是主人: - )。

希望有所帮助。谢谢!

答案 1 :(得分:0)

好的,我知道了,但是如果不手动编辑csproj文件就行不通。这里有一个快速解释,其他任何人都在使用macamarin.android/ios项目在mac上运行他们的测试,并与xamarin工作室结合使用。

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

  2. 打开您的解决方案并从" Mac"添加新的图书馆项目"图书馆" - "统一API"树。

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

  4. 打开已添加解决方案的选项,并从#34; Xamarin.Mac Mobile Framework"切换目标框架。到" Xamarin.Mac .Net 4.5 Framework"在" Build" - "将军"。

  5. 添加您的包裹。不要忘记Nunit和reactiveui-testing。

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

    运行测试并感到高兴

  7. 参考文献破碎:

    <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

相关问题