Как использовать MsTest в непрерывной интеграции без VS?

Моя проблема довольно проста, у меня есть сервер CI, который запускает msbuild и mstest.

Проблема в том, что Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll не существует (и я думаю, что другие файлы, связанные с mstest ...), если мы не устанавливаем VS на сервер, что довольно глупо для сервера CI ...

Как я могу это исправить?


person LoKtO    schedule 05.06.2009    source источник
comment
Для этой цели у них теперь есть отдельный установщик, который называется Агенты для Visual Studio. Есть один для 2010 и для 2012.   -  person Louis Somers    schedule 30.06.2014


Ответы (4)


К сожалению, не существует поддерживаемого или простого способа установки VS на машине с агентом сборки в 2005 или 2008 годах (В 2010 году будет установщик тестового агента). ОБНОВЛЕНИЕ: См. Это сообщение от Стив Смит, чтобы узнать больше, в котором говорится примерно то же самое

Дело не только в отсутствии сборок - если вы хотите запустить тесты, бегун - это не просто отдельные маленькие EXE и DLL.

Да верится с трудом! Излишне говорить, что очень немногие другие тестовые среды на планете имеют это ограничение, поэтому, если у вас нет большого количества тестов, вы можете подумать о перемещении по ряду причин, которые описаны во многих местах, например: Основные проблемы и непрактичность использования MSTest ...

РЕДАКТИРОВАТЬ: из-за ответа Рихана я выпил следующее Запуск mstest без Visual Studio. - Поддерживается не полностью, но "работает" ...

РЕДАКТИРОВАТЬ 2: Запуск MSTest без Visual Studio - Gallio спешит на помощь выглядит намного более многообещающим с точки зрения поддержки и отсутствия взлома. NB см. Комментарий @Johannes Rudolph к этому сообщению, хотя '

РЕДАКТИРОВАТЬ 3: Добавлена ​​информация о статусе 2010 года по этому вопросу

ПРИМЕЧАНИЕ. У меня есть аналогичный вопрос для 2008 года относительно того, что требуется для поддержки параметра / publish в MSTest: - Запуск MSTEST.exe / publish на сервере TeamBuild, каковы предварительные условия?

person Ruben Bartelink    schedule 05.06.2009
comment
Я знаю, что mstest - отстой, но он интегрирован в VS, и моему клиенту не нужны другие вещи, такие как nunit ... На данный момент я пытаюсь проверить способ Рихана ... С уважением, Лоик - person LoKtO; 05.06.2009
comment
Справедливо. Я понимаю. Другими хорошими подходами являются TestDriven.NET, Gallio GUI runner, NUnit GUI (вы можете заставить его автоматически запускаться при компиляции, что очень хорошо работает - это означает, что все, что вам нужно сделать, это нажать Shift-F6 и любой набор тестов, который вы хотите (на основе категорий или дерева пространств имен или множественного выбора с помощью флажков) мгновенно повторно запускаются. Другое дело - рассмотреть возможность маршрутизации их в NUnit (проще продать магазин, ориентированный на MSTEST, чем xUnit.NET, даже если бы я обычно по умолчанию), а затем с помощью Resharper или TestDriven.NET, чтобы обеспечить превосходное качество интегрированного тестирования VS. - person Ruben Bartelink; 05.06.2009
comment
Да, я знаю о TestDriven.Net, но лицензия на 10 стоит более 1000 $, то же самое и с resharper, но у некоторых разработчиков уже есть лицензия. На данный момент способ Рихана работает, но я хочу знать, законно это или нет: / Если нет, я попытаюсь переместить разработчика в NUnit, но это будет сложно, они уже не хотят выполнять модульный тест, который взаимодействует с VS UI так что NUnit ... Но я попробую. Спасибо за помощь, и если у кого-то есть ответ по поводу законности и лицензирования, будет круто :) - person LoKtO; 05.06.2009
comment
Я считаю, что с законностью все в порядке - есть ссылка с одного из цитированных мною постов на комментарий Джеффа Билера из MS. Установка - более сложный момент - в установщике все равно нет флажка. Я лично использую RedGreen (плагин DXCore) для запуска тестов, но он не идеален. У вас определенно есть над чем поработать, если интеграция средства запуска тестов в IDE является препятствием для начала выполнения модульных тестов, но я был на вашем месте, и это сложно и должно быть тем, что убеждает людей ... - person Ruben Bartelink; 05.06.2009
comment
К сожалению, Галлио по-прежнему полагается на наличие MStest на коробке. См. stackoverflow.com/questions/3883180/. - person Johannes Rudolph; 01.04.2011
comment
Вот что мне потребовалось, чтобы заставить его работать: jorudolph.wordpress.com/2011/04/02/ - person Johannes Rudolph; 02.04.2011

@Ruben Bartelink: Вы можете установить mstest.exe на свой компьютер, установив тестовые агенты. вы можете найти это @given location. После установки запустите mstest.exe с параметрами / testcontainer и / test. Он успешно работает и создает файлы trx. Проверьте что-то, что может обрабатывать trx и создавать отчеты.

http://www.microsoft.com/en-us/download/details.aspx?id=38186

person Raja Moparthi    schedule 26.05.2014

Конкретное решение для меня и Visual Studio 2010 было:

  1. Установите «Test Agent 2010» из Visual Studio Agents 2010.
  2. Перезагрузите Windows
  3. Установите пакет обновления 1 для Visual Studio 2010.
  4. Перезагрузите Windows
  5. Убедитесь, что ссылки на проекты обновлены и указывают на «Microsoft.VisualStudio.QualityTools.UnitTestFramework» «10.1.0.0», а не на «10.0.0.0».
person Dean Taylor    schedule 07.11.2012

У нас есть круиз-контроль на нашем сервере интеграции. Я не установил визуальную студию, но скопировал сборки MSTEST в GAC. Затем для настройки мы использовали Документацию по круиз-контролю наши отчеты об испытаниях. Работает очень хорошо.

person Rihan Meij    schedule 05.06.2009
comment
Как MSTEST.EXE попал на машину? Есть ли где-нибудь подробное описание шагов, необходимых для выполнения этой части (и qhich dll QT должны войти в GAC). Очевидно, если это сработает, это здорово ... - person Ruben Bartelink; 05.06.2009
comment
Это общая среда разработки, и другой человек запустил тесты MSTests, не зная, что они сделали для этого. Что также помогает, так это то, что при проверке исходного кода у нас есть папка ресурсов, которая содержит удобные небольшие инструменты, такие как mstest.exe и tinyget.exe, которые помогают просто выполнить http get после нашей сборки, чтобы проверить работу сайта. Увеличивает кассу, но на данный момент это не проблема. Всегда ищем более простые способы автоматизации. - person Rihan Meij; 05.06.2009
comment
Рискну предположить, что кое-что из того, что описано в ссылках, которые я добавил в своем ответе, - это то, что произошло ... Я бы порекомендовал использовать что-то вроде Gallio или переключиться на NUnit или xUnit.NET - особенно если вы тип магазина, который выбрал CC.NET против TeamCity или VSTS - person Ruben Bartelink; 05.06.2009