Как да използвам 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 г.). АКТУАЛИЗАЦИЯ: Вижте тази публикация от Стив Смит за повече информация, която казва почти същото

Въпросът не е само в липсата на сборки - ако искате да стартирате тестовете, runner-ът не е просто отделен малък EXE и DLL.

Да, трудно е за вярване! Излишно е да казвам, че много малко други тестови рамки на планетата имат това ограничение, така че освен ако нямате много тестове, бихте могли да помислите за преместване поради различни причини, които са разгледани на много места, например: Фундаменталните проблеми и непрактичността на използването на MSTest...

РЕДАКТИРАНЕ: Подтикнат от отговора на Rihan, препоръчах следното Изпълнение на 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... Опитвам се да тествам начина на Rihan за момента... С най-добри пожелания Loïc - 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, но някои разработчици вече имат своя лиценз. За момента начинът на Rihan работи, но искам да знам дали е легитимен или не:/ Ако не, ще се опитам да преместя dev в NUnit, но ще бъде трудно, те вече не искат да правят Unit Test, който се взаимодейства с VS UI така NUnit... Но ще опитам. Благодаря за помощта и ако някой има отговор относно законността и лицензирането, ще бъде страхотно :) - person LoKtO; 05.06.2009
comment
Мисля, че законността е наред - има връзка от една от публикациите, които цитирах, към коментар на Джеф Бийлер от MS. Инсталацията е по-трудната част - така или иначе няма квадратче за отметка в инсталатора. Аз лично използвам RedGreen (плъгин за DXCore) за провеждане на тестове, но не е перфектен. Определено имате работа за вършене, ако интегрирането на програмата за изпълнение на тестове в IDE е пречка за започване на изпълнение на модулни тестове, но аз бях на ваше място и е трудно и трябва да бъде всичко, което убеждава хората... - person Ruben Bartelink; 05.06.2009
comment
За съжаление Gallio все още разчита на 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 във вашата машина, като инсталирате тестови агенти. можете да го намерите на дадено местоположение. След инсталирането извикайте 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. Инсталирайте Visual Studio 2010 Service Pack 1
  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 QT dlls трябва да влязат в 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