Запуск тестов автоматизации пользовательского интерфейса на сервере сборки

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

Вопрос

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

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

Решение

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

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

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

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

Другие советы

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

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

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

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

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

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

  

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

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

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

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