WatiN тестирует с помощью IE.Сбой getCookie только из CruiseControl

StackOverflow https://stackoverflow.com/questions/187391

Вопрос

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

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

browser.GetCookie(url, cookieName)

Ошибка, указанная в журнале CruiseControl, является старой ошибкой:

Object reference not set to an instance of an object.

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

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

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

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top