Как запустить White + Teamcity (приложение Winforms) - PullRequest
2 голосов
/ 06 мая 2011

Я пытаюсь запустить UI-тесты (написано белым цветом).Когда я запускаю их с помощью NUnitConsole, все работает нормально.Когда я пытаюсь запустить их с помощью TeamCity, я получаю следующее исключение Test(s) failed. White.Core.UIItems.UIActionException : Couldn't find window with title Form1 in process 4132, after waiting for 5000 ms.Что может быть не так?Что я мог сделать, чтобы пройти тест?

Ответы [ 4 ]

3 голосов
/ 18 октября 2013

Потратил много времени на решение этой проблемы.

Основные шаги:

  1. Вам нужен отдельный компьютер с установленной командой teamcity. Компьютер должен иметь монитор и мышь.
  2. Агент НЕ СЛЕДУЕТ запускать и запускать в качестве службы Windows (отключите его при необходимости).
  3. Вы должны запустить агент сборки TeamCity из файла .bat (как администратор). Для этого перейдите на TeamCityBuildAgentfolder\bin и запустите agent.bat файл с start аргументом
  4. Отключение режима сна / блокировки экрана компьютера через определенный промежуток времени. Для ваших тестов потребуется рабочий стол для манипуляций с пользовательским интерфейсом.

Если вы все сделали правильно, вы сможете увидеть, как ваш агент сборки активен в меню «Агенты» TeamCity.

Вы также можете автоматизировать запуск агента TeamCity (при входе в систему выбранного пользователя):

  1. Автоматизация входа пользователя. Больше инструкций здесь

  2. Создание задачи в планировщике задач, которая будет запускать агент сборки при входе пользователя с правами администратора (с наивысшими привилегиями)

  3. Убедитесь, что у пользователя, который будет автоматически входить в систему, есть все необходимые разрешения (запуск сценариев, выполнение файловых операций и т. Д.)

ВАЖНО!

  • Выполнение тестов пользовательского интерфейса таким образом является потенциальной дырой в безопасности, поэтому убедитесь, что неавторизованные пользователи не имеют доступа к компьютеру, на котором выполняются эти тесты.
  • Помните, что для запуска теста пользовательского интерфейса компьютер НЕ ДОЛЖЕН быть заблокирован или находиться в спящем режиме.
3 голосов
/ 09 мая 2011

Мало того, что агент сборки должен быть настроен для взаимодействия с рабочим столом, но рабочий стол должен отображаться для того, чтобы автоматизация пользовательского интерфейса работала - рабочий стол не может быть заблокирован, а заставка не должна быть запущена. Ваш агент на безголовой машине? Если вы используете RDP для подключения к агенту для проверки, при закрытии RDP он блокирует рабочий стол. В этом случае автоматизация не удастся. Вместо использования RDP, используйте средство просмотра VNC для входа в систему, а не RDP, поскольку VNC не будет блокировать рабочий стол при его закрытии.

Другая проблема, которую следует рассмотреть, - это доступ к сети. Если вы используете агент TC в качестве службы с доступом к рабочему столу, он будет работать под учетной записью службы, которая не будет иметь доступа к сетевым ресурсам и т. Д. Если это проблема, вы не сможете запустить TC агент как служба, и вместо этого ему нужно будет войти в систему с пользователем домена и запустить файл agent.bat для запуска агента.

2 голосов
/ 06 мая 2011

Возможно, вам нужно заставить агент сборки Teamcity взаимодействовать с рабочим столом.

Выполнить -> services.msc -> Выбрать агент TeamCity Build и щелкнуть правой кнопкой мыши -> Свойства -> вкладка «Вход» -> Отметить «Разрешить службе взаимодействовать с рабочим столом»

Edit:

Если это не сработает, остановите службу агента, перейдите в папку Build Agent (c: \ teamcity \ buildagent \ bin?) И введите agent.bat start, а затем запустите тесты.

1 голос
/ 10 мая 2011

Существует рекомендация для запуска тестов пользовательского интерфейса на виртуальных машинах.

Кажется самым надежным решением.

...