Непрерывная интеграция с 64-битной Sharepoint и TFS 2008? - PullRequest
1 голос
/ 11 сентября 2009

Я настроил 64-битный сервер сборки TFS 2008 с Sharepoint, непрерывной интеграцией и готовым MSTest. Модульные тесты для простых классов бизнес-логики работают нормально, а результаты тестов публикуются в TFS. Однако любой тест, который использует API Sharepoint, терпит неудачу, SPFarm.Local возвращает ноль и так далее. Есть ли способ это исправить?

Тесты работают нормально в идентичной 32-разрядной среде разработки (Windows Server 2008 под Hyper-V, исправление Sharepoint до накопительного обновления до июня 2009 г.) из Visual Studio и командной строки, поэтому проблема не в неправильном использовании SPContext.Current или любой другой части API, которую необходимо запустить в контексте веб-сервера. Я исключил проблем с разрешениями , потому что учетная запись агента сборки может развернуть решение и создать семейства сайтов просто отлично с помощью stsadm. Следующей причиной может быть то, что модульные тесты выполнялись с 32-битным процессом , который не мог правильно обращаться к 64-битному API-интерфейсу Sharepoint. Я попытался обойти , но у него есть побочный эффект отключения поддержки TFS в MSTest.

Нужно ли ждать версий инструментов MS 2010 (и надеяться на лучшее) или существует сторонняя тестовая среда, которая работает в 64-битной версии и может публиковать результаты тестирования в TFS 2008?

Ответы [ 2 ]

2 голосов
/ 11 сентября 2009

Это происходит потому, что у SharePoint нет контекста в выполняемых тестах. Контекст SharePoint (в особенности здесь рассматривается объект SPContext.Current ) заполняется только тогда, когда он запускается внутри страницы ASP.NET как часть HTTP-запроса. MSTest не делает этого.

Если вам нужно выполнить интеграционные тесты (в отличие от модульных тестов) с API-интерфейсом SharePoint, вы можете использовать Typemock Isolator для SharePoint . Это будет издеваться над этими объектами SharePoint, чтобы они больше не были нулевыми. См. блог Фрэнсиса Ченга для примера.

Редактировать после комментария: У меня нет прямого опыта с этим, но я не могу придумать ни одной причины, по которой возникла бы проблема между 32-битной и 64-битной. Пожалуйста, внимательно посмотрите на любые различия в среде и конфигурации.

0 голосов
/ 26 марта 2010

Я тоже сам столкнулся с этой проблемой. После поиска в сети я наконец нашел эту статью: http://fastrup.net/post/Visual-Studio-Unit-Tests-and-64-bit-SharePoint-does-not-play.aspx

Я уже склонялся в направлении NUnit, чтобы посмотреть, изменит ли это что-то, и теперь я собираюсь исследовать этот путь, и если он работает, это будет моим подходом. Это разочаровывает, когда вы хотите сделать правильные вещи и протестировать все, что вы делаете, но инструменты не поддерживают среду, в которой вам нужно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...