Рубрики
sharepoint

Unit-тесты SharePoint 2013 в Visual Studio 2013: PlatformNotSupportedException

UPD 17 февраля 2015: Коллега, подсказал, что у него в январе 2015 года получилось запустить Unit-тесты из VS2013 через NUnit Test Adapter и отлаживать. Возможно повлиял какой-то апдейт студии, который к этому времени появился.

Использовать Unit-тесты SharePoint очень удобно при любой разработке. Хотелось иметь такую возможность и в SharePoint 2013 из Visual Studio 2013. В интернетах нигде информации не нашёл, а ошибка повторялась:

Ошибка unit-тестов в SP2013 и VS2013
Ошибка unit-тестов в SP2013 и VS2013

PlatformNotSupportedException was unhandled by user code:
An exception of type ‘System.PlatformNotSupportedException’ occurred in Microsoft.SharePoint.dll but was not handled in user code
Additional information: Microsoft SharePoint is not supported in 32-bit process. Please verify that you are running in a 64-bit executable.

Сначала я использовал встроенный проект MSTest. Ошибка происходит при попытке создать SPSite, он работает из x64 сборки, а тесты, видимо, запускаются под x86(32). Как я не пытался решить с помощью настройки TEST->Test Settings->Default Processor Architecture -> X64, то не помогало.

В NUnit то же самое. Но тут я продвинулся:)
1. Нужно установить NUnit testing framework на компьютере;
2. Дальше для тестового проекта (предварительного созданного) через меню Manage NuGet Packages for Solution установить NUnit;
3. Собрать сборку тестового проекта
4. В PowerShell перейти в папку с установленным nunit.exe — это утилита запуска NUnit тестов
5. Запустить из папки nunit.exe «путьДоПапки/YourTestProject.dll»
6. В запустившейся утилите можно запускать тесты, внутри которых корректно работает SPSite и другие классы Microsoft.Sharepoint.dll !
7. Подключить Visual Studion 2013 для отладки к процессу nunit-agent.exe и можно даже отлаживать тесты.

В итоге задача решена, но, конечно, хотелось бы запускать и дебажить тесты напряиую из VS. Работаю над этим.
UPD: задача решена, см. начало статьи

Рубрики
.NET Framework

Ошибка в Powershell: «simple command» not recognized as the name of a cmdlet

Столкнулся с ошибкой в Powershell: «simple command» not recognized as the name of a cmdlet. Не работала в том числе команда cd. Дело оказалось в переменной среды, Powershell смотрит указанные пути в поисках модулей.
Решение такое:
1. Перейти Computer -> Properties -> Change settings -> Advanced -> Environment Variables:
2. Отредактировать System Variable с именем PSModulePath — к существующей строке без пробелов добавить точку с запятой и значение:
%SystemRoot%\system32\WindowsPowerShell\v1.0\Modules\;
3. Итоговый вид строки PSModulePath у меня такой:
;c:\Program Files\AppFabric 1.1 for Windows Server\PowershellModules;
c:\Program Files (x86)\Microsoft SQL Server\110\Tools\PowerShell\Modules\;
%SystemRoot%\system32\WindowsPowerShell\v1.0\Modules\;

Рубрики
sharepoint

SharePoint 2013 — загрузить файл цветовой схемы .spcolor

Как загрузить файл цветовой схемы SharePoint 2013 .spcolor через интерфейс? Подумал я сегодня утром. Ответ: перейти в браузере по вот такой ссылке siteurl/_catalogs/theme/15.

Быстро перейти на страницу Change the look, чтобы применить новую схему: siteurl/_layouts/15/designgallery.aspx.

При обновлении старой схемы, которая уже была применена к сайтам нужно подождать, потому что она применяется не сразу, где-то кешируется.