Выполнение тестов автоматизации пользовательского интерфейса на сервере сборки - PullRequest
9 голосов
/ 05 мая 2009

Мы используем UI Automation и Nunit для создания тестов UI для приложения WPF. Мы создали тесты, которые отлично работают, когда вы запускаете их с локального компьютера. Эти тесты никогда не выполняются успешно на нашем сервере сборки (используя TeamCity). Сборка всегда зависает после открытия окна приложения. Но если я вошел в систему (удаленный рабочий стол), на нашем сервере сборки все тесты автоматизации пользовательского интерфейса также будут успешно выполнены. Таким образом, я предполагаю, что это, вероятно, как-то связано с активным сеансом Windows. Любые идеи, как убедить наш сервер сборки для создания активного сеанса Windows или какие-либо другие решения для запуска этих тестов на сервере сборки?

Ответы [ 4 ]

3 голосов
/ 05 мая 2009

У вас не так много вариантов. Сначала я перечислю два наиболее известных варианта:

  • Настройте виртуальную машину на своем сервере сборки. Ваши сборки выполняются на виртуальной машине. Вы можете заблокировать хост (он же ваш сервер сборки), сохраняя безопасность.
  • Держите кого-то в курсе все время. Это порождение создает проблему безопасности. Вы можете немного облегчить эту проблему, убрав мышь, клавиатуру и экран и получив доступ к серверу сборки только через RDP или что-то подобное.

Редактировать

Взгляните на этот FAQ по TestComplete item: Может ли TestComplete выполнять сценарии, когда компьютер заблокирован?

1 голос
/ 06 мая 2009

Похоже, вам нужно запускать тесты с интерактивным сеансом, а не с сервисом. Добавление «Разрешить службе взаимодействовать с рабочим столом» может помочь, но, по-видимому, это больше не поддерживается в Vista.

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

Мы использовали для запуска наших тестов UIAutomation, используя агент загрузки visual studo 2008 для их распределения, без проблем запускаясь в качестве инструмента командной строки на ВМ.

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

1 голос
/ 05 мая 2009

ОК, я просто догадываюсь здесь.

Попробуйте запустить службу TeamCity с локальным пользователем сервера сборки вместо системной учетной записи. Возможно, вам придется войти в систему с этой учетной записью один раз, прежде чем начинать новую сборку.

0 голосов
/ 06 мая 2009

Сборка всегда зависает после открытия окна приложения.

Тесты, которые создают экземпляр интерфейса? Это не сработает, например если вы получите модальный диалог, сборка будет зависать. Это причина, по которой был изобретен шаблон MVP, чтобы изолировать код активной презентации от конкретного представления.

Используете ли вы макет в ваших автоматических тестах?

...