Невозможно добавить 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