Запуск интеграционных тестов на нескольких машинах - PullRequest
3 голосов
/ 10 января 2012

У меня есть n-уровневое приложение с разными уровнями, работающими на разных машинах. Мне нужно выполнить кодированные интеграционные тесты на этих разных машинах, предпочтительно с использованием инфраструктуры MSTest, поскольку это то, во что все остальное написано.

Проблема оркестровки в том, что перед началом испытаний на машине "B" необходимо правильно настроить машину "A". VS из коробки, кажется, не справляется с этим сценарием, поэтому мне нужно что-то еще.

На первый взгляд, лабораторный менеджер TFS - это то, что мне нужно для управления машинами, развертывания кода и запуска соответствующих тестов, но проблема заключается в том, что код там не живет - мы используем Perforce для контроля версий.

Итак

a) Кто-нибудь успешно использовал TFS lab manager для тестового развертывания с использованием кода, который вышел из другой системы контроля версий? Если да, то как ты это настроил?

или

b) Существуют ли какие-либо альтернативные среды тестирования, которые позволят мне развернуть код на нескольких машинах, выполнить кодированные тесты и собрать результаты успеха / неудачи?

Ответы [ 3 ]

3 голосов
/ 10 января 2012

а) Я не делал этого с другим управлением исходным кодом, но я думаю, что это определенно возможно с TFS Lab Manager.Модель TFS Workflow & Test Controller / Agent работает на основе Windows Workflow в менеджере Lab, поэтому вы захотите изменить рабочий процесс для сборки (используя редактор XAML или UI Workflow в VS) и заменить любые вызовы управления исходным кодом TFS на свои собственныеЗадача для получения / версия / код возврата.Фактически рабочий процесс TFS Lab отделен от рабочего процесса сборки и может просто получать встроенные двоичные файлы из пути UNC или чего-то еще.Если вы выбрали последний вариант, вы можете создать код с помощью MSBuild и некоторых других драйверов, таких как Jenkins, а затем использовать TFS Lab Manager для правильного выполнения тестов на каждом уровне.

b) И наоборот, вы можете использовать Jenkins полностьюплагины VMWare для вращения виртуальных машин вверх и вниз для тестирования.Вы можете использовать плагин Powershell и PowerShell Remoting или какой-либо другой плагин MSTest для выполнения удаленных тестов.Этот вариант кажется мне сложнее, но я думаю, что оба могут работать.

1 голос
/ 11 января 2012

На основе ваших комментариев

Код, который я тестирую, создается локально с использованием VS.Интеграционные тесты запускаются вручную.

Я ожидаю, что любая платформа CI будет работать с помеченной сборкой в ​​качестве входных данных.
На самом деле по вашим (обоим) вопросам: я думаю, что пока вы не инвестируетепытаясь перейти на стабильную среду сборки, вы обречены делать это вручную / с помощью самодельных сценариев.

Наличие сервера сборки - это действительно хорошая вещь, и, если вы внастраивая современную среду разработки, вы в принципе не можете обойтись без нее.

Если вас привлекает TFS Lab Manager, переход на TFS-Build является обязательным.Если вы пойдете по этому пути, вам следует подумать о включении всего в TFS, включая управление исходным кодом.

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

0 голосов
/ 16 января 2012

Я собираюсь ответить на свой собственный вопрос тем, что я на самом деле сделал: отказался от лабораторной идеи, потому что это слишком много работы для работы!

Сначала это выглядело многообещающе, и я уверен, что это возможно при достаточных усилиях, но, как отмечали другие ответы, это будет означать существенные изменения в рабочем процессе лаборатории для достижения моей цели - гораздо больше, чем я могу оправдать. Мало того, что была проблема с кодом, не создаваемым с TFS, но я также столкнулся с проблемами, пытаясь сказать руководителю лаборатории / тестирования, как выполнять какие тесты где.

В конце я соединил решение на полпути вместе, используя сценарий powershell для настройки среды (возврат снимков hyper-v, копирование нескольких файлов и запуск удаленной установки), и стандартную среду MSTest, встроенную в VS для выполнения испытания против окружающей среды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...