Тест WatiN с использованием IE.GetCookie не выполняется только из CruiseControl - PullRequest
1 голос
/ 09 октября 2008

Сегодня я добавил несколько простых тестов WatiN в наше приложение, чтобы проверить правильность сохранения значения cookie.

Тесты проходят локально на всех машинах в команде. Однако, когда CruiseControl запускает тесты на нашем сервере сборки, эти новые тесты не выполняются в строке, содержащей

browser.GetCookie(url, cookieName)

Ошибка в журнале CruiseControl - старый каштан:

Object reference not set to an instance of an object.

Я вошел на сервер сборки с помощью удаленного рабочего стола, используя ту же учетную запись, под которой работает CruiseControl, и запустил MbUnit вручную, и тесты прошли. Таким образом, не может быть проблем с разрешениями на сервере сборки для доступа к файлам cookie.

Я просмотрел всю документацию WatiN для получения помощи, но оказался пустым. Я перезапустил сервис CruiseControl. Я перепробовал все, что мог придумать, и теперь я совершенно в растерянности относительно того, что может отличаться в том, как круиз-контроль выполняет эти тесты.

Кто-нибудь знает, что может быть причиной и / или как ее устранить?

1 Ответ

2 голосов
/ 05 ноября 2008

Попробуйте запустить CruiseControl как приложение, а не как службу. WatiN имеет тенденцию зависать при запуске из службы (поскольку службы Windows не подключены к сеансу пользовательского интерфейса, а WatiN требуется одна для обработки диалоговых окон в IE).

Но кроме этого ... напомним, что файлы cookie IE хранятся в вашем профиле пользователя. Профили не загружаются при запуске служб - они являются процессами-демонами, которые работают в фоновом режиме и фактически не выполняются в контексте сеанса входа в систему. Я подозреваю, что это причина вашего исключения.

...