2010-08-26 3 views
15

Я использую TeamCity для своих сборщиков CI, и я бы хотел создать вторую сборку для запуска автоматических тестов пользовательского интерфейса для виртуальных машин Windows XP и Windows 7.Стратегия автоматического тестирования пользовательского интерфейса на удаленных виртуальных машинах

я представляю себе сборку работает следующим образом:

  1. компилировать, запускать модульные тесты и т.д.
  2. Подготовка MSI с помощью WiX
  3. Копировать MSI целевых тестовых машин
  4. Дистанционно выполнять от MSI
  5. Скопируйте код жгута проводов на удаленную машину
  6. Испытания на рабочем месте
  7. Отделка помещений

Автоматизированные тесты пользовательского интерфейса написаны с использованием NUnit и должны запускаться непосредственно на тестовой виртуальной машине (они не могут запускаться удаленно). Важно, чтобы в случае сбоя тестов он появился в журнале сборки TeamCity, и сборка завершилась неудачей. Я бы предпочел не устанавливать VS или агентов сборки TeamCity на любой из тестовых виртуальных машин.

Похоже, что большинство из них должно быть возможно с использованием psexec.exe. Есть ли альтернативные (предпочтительно с открытым исходным кодом) инструменты, на которые я должен смотреть?

ответ

7

делает глубокий вдох

Мы искали во что-то, чтобы помочь нам с нашими автоматизированных тестов пользовательского интерфейса. Мы используем runorex для тестирования пользовательского интерфейса и TeamCity/Msbuild для выполнения тестов.

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

  1. Сервер CI копирует установочные файлы и тестовые сценарии на сервер тестирования тестирования.
  2. Затем сервер CI запускает пользовательское приложение на сервере хостов тестирования, на котором указывается имя виртуальной машины.
  3. Затем сервер тестового хоста запускает программное обеспечение VM с использованием Virtual PC.exe -singlepc -pc vhdname.vhd -launch и ждет его завершения (после того, как он запускает свои тесты).
  4. VM захватывает установочные файлы и скрипты из сети и выполняет их.
  5. После запуска тестов он возвращает результаты в сетевое местоположение и закрывается.
  6. Элемент управления возвращается в пользовательское приложение.
  7. Управление возвращается серверу CI, который определяет результаты, если он прошел или не прошел (и обновляет пользовательский интерфейс, чтобы разработчики узнали о результате).
  8. Результаты представлены как артефакты в TeamCity и помечены в Svn.

Я думаю, что это все. Однако он запутан, но работает. Надеюсь, кто-то из вас поможет.

2

Jeff Brown из команды Gallio был talking about инструментом Archimedes, который он планирует написать для поддержки этого требования. Это звучит многообещающе, но я не думаю, что до сих пор был достигнут значительный прогресс.

В то же время в проекте Gallio есть что-то вроде VM Tool, которое может делать то, что вы хотите. Он предоставляет команды для остановки, запуска и моментальных снимков виртуальных машин и, что более важно, для копирования файлов вперед и назад и выполнения команд.

Я полагаю, вы также рассмотрели Powershell Remoting?

Смежные вопросы