Watin Test работает из Visual Studio, но не из CCNet, работающего в качестве службы Windows - PullRequest
3 голосов
/ 16 ноября 2010

У нас есть тест Ватина для страницы с всплывающим окном модели ajax. Тест пытается открыть окно, спрятать его и показать заново.

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

Сервером сборки является Cruise Control.Net, работающий в качестве службы Windows (вошел в систему как учетная запись домена). Наши сценарии сборки написаны на NAnt, и мы запускаем тесты Watin, используя метод, описанный в этом посте .

Модальное всплывающее окно ajax реализовано с использованием jquery.

Мы используем:

  • Watin 2.0.20
  • NUnit 2.5.5
  • Windows Server 2003 с IE7
  • jQuery 1.4.2

Вот фрагмент теста, который провалился.



            _ieBrowser.Button("btnToggle").Click();
            _ieBrowser.WaitForComplete();

            Assert.IsTrue(_ieBrowser.Button("btnReshow").Exists);

            _ieBrowser.Button("btnReshow").Click();
            _ieBrowser.WaitForComplete();

            _ieBrowser.TextField("editBody").WaitUntilExists();
            Assert.IsTrue(_ieBrowser.TextField("editBody").Text.Contains(thisIsCustomer));

            _ieBrowser.Button("btnDone").Click();
            _ieBrowser.WaitForComplete();

Эта строка:

_ieBrowser.TextField("editBody").WaitUntilExists();

раз.

Ответы [ 2 ]

4 голосов
/ 08 марта 2011

По умолчанию служба Windows не может взаимодействовать с рабочим столом.

Если вы зайдете в свойства службы, то посмотрите на вкладку «Вход в систему», вы увидите 2 варианта учетной записи вашей службы: учетную запись локальной системы или другую указанную учетную запись.

Если вы выберете Локальную системную учетную запись, она разрешит службе Разрешить взаимодействие с рабочим столом.

Если вы включите эту опцию, а затем перезапустите службу, она должна позволить службе открывать и закрывать окна.

0 голосов
/ 08 марта 2011

Проблема в том, что у Windows Service не может быть окон.Вот почему ваш тест не пройден.

...