Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing Can';t将ReactiveUI添加到NUnit测试项目_Unit Testing_Xamarin_Nunit_Moq_Reactiveui - Fatal编程技术网

Unit testing Can';t将ReactiveUI添加到NUnit测试项目

Unit testing Can';t将ReactiveUI添加到NUnit测试项目,unit-testing,xamarin,nunit,moq,reactiveui,Unit Testing,Xamarin,Nunit,Moq,Reactiveui,我目前正在尝试使用NUnit和Moq设置单元对单元测试我们的反应UI视图模型。但是我不能让它工作。我无法将ReactiveUI添加到NUnit测试库(无法解析依赖项“Rx Xaml(≥ 2.2.5),我不能将最小起订量添加到PCL项目中 甚至可以使用NUnit和Moq对反应UI视图模型进行单元测试吗 顺便说一句:我在Mac OSX 10.10.5上使用Xamarin Studio,但代码在Windows 10上运行良好:( 在OSX上,我收到一个Unix传输错误,但在Windows上,测试确实有

我目前正在尝试使用NUnit和Moq设置单元对单元测试我们的反应UI视图模型。但是我不能让它工作。我无法将ReactiveUI添加到NUnit测试库(无法解析依赖项“Rx Xaml(≥ 2.2.5),我不能将最小起订量添加到PCL项目中

甚至可以使用NUnit和Moq对反应UI视图模型进行单元测试吗

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


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

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

这是一个关于如何使事情正常工作的非常肮脏的黑客程序(),这是一个链接,用于拉取请求()以进行跟踪-也许有一天这将出现在master:-)中


希望有帮助。谢谢

好的,我知道了,但是如果不手动编辑csproj文件,它就无法工作。这里是一个快速的解释,任何其他人都在为xamarin.android/ios项目运行测试而苦苦挣扎,使用mac上的reactiveui与xamarin studio相结合

  • 使用xamarin.installer安装xamarin.mac

  • 打开解决方案并从“Mac”“Library”-“Unified API”树中添加新的库项目

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

  • 打开添加的解决方案的选项,并将目标框架从“Xamarin.Mac Mobile Framework”切换到“Build”-“General”下的“Xamarin.Mac.Net 4.5 Framework”

  • 添加您的包。别忘了Nunit和reactiveui测试

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

    运行您的测试并保持快乐

  • 断开的引用:

    <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>
    
    
    ..\packages\reactiveui core.6.5.0\lib\Net45\reactiveui.dll
    ..\packages\Splat.1.6.2\lib\Net45\Splat.dll
    `
    
    固定参考:

    <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>
    
    
    ..\packages\reactiveui core.6.5.0\lib\Xamarin.Mac10\reactiveui.dll
    ..\packages\Splat.1.6.2\lib\Xamarin.Mac10\Splat.dll
    

    作为参考,这是我们的csproj工作文件

    您的目标是什么?cf reactiveui我认为您需要针对一个不引用Rx XAML的对象按照步骤,我得到了错误:System.IO.FileNotFoundException:无法加载文件或程序集'System,Version=2.0.5.0,Culture=neutral,PublicKeyToken=7cec85d7bea7798e'或其依赖项之一。有什么想法吗?