Невозможно добавить ReactiveUI в проект тестирования NUnit

В настоящее время я пытаюсь настроить Unit для установки наших ViewModels ReactiveUI с помощью NUnit и Moq. Однако я не могу заставить его работать. Я не могу добавить ReactiveUI в тестовую библиотеку NUnit (Невозможно разрешить зависимость "Rx-Xaml (≥ 2.2.5)" ), и я не могу добавить Moq в проект PCL.

Можно ли даже отключить ViewModels ReactiveUI с помощью NUnit и Moq?

Btw: Я использую Xamarin Studio на Mac OSX 10.10.5, но код отлично работает в Windows 10: (

В OSX я получаю сообщение об ошибке Unix Transport, но в Windows тест работает.

Ответ 1

У вас такая же проблема. Причина, по которой это не работает для нас, относится к классу PlatformRegistrations из PortableLibraryStubs. У нас нет реализации платформы в проекте Unit Test, и поэтому он терпит неудачу.

Вот довольно грязный хак, как заставить все работать (https://github.com/OlexaLe/ReactiveUI/commit/c8a8292fde7a0617338110c55bfbf8c7d6947e1d), и вот ссылка на запрос pull (https://github.com/reactiveui/ReactiveUI/pull/1008) для отслеживания - может быть, когда-нибудь это будет в главном:-).

Надеюсь, что это поможет. Спасибо!

Ответ 2

Хорошо, я получил его, но он не работает без редактирования файла csproj вручную. Вот краткое объяснение для всех, кто борется с запуском своих тестов для проекта xamarin.android/ios, используя реактиву на mac в сочетании с студией xamarin.

  • Установите xamarin.mac с помощью xamarin.installer

  • Откройте ваше решение и добавьте новый проект библиотеки из библиотеки "Mac" "- Унифицированный API".

  • Удалите все ненужные файлы, такие как Main.cs или AppDeletage.cs

  • Откройте параметры добавленного решения и переключите целевую структуру с "Xamarin.Mac Mobile Framework" на "Xamarin.Mac.Net 4.5 Framework" в разделе "Build" - "General".

  • Добавьте свои пакеты. Не забывайте о Nunit и реактивном тестировании.

  • Откройте файл 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