Запуск тестов VSTS без mstest.exe

По причинам, которые я не буду вдаваться в подробности, все наши модульные тесты используют тестовую среду VSTS. Теперь я хочу создать сценарий MSBuild, который запускает тесты, но я не хочу использовать mstest.exe по разным причинам (он медленнее, требует установки Visual Studio везде, мне нужно поддерживать testrunconfig и т. Д.)

Я видел, что TestDriven.net и TeamCity могут запускать тесты VSTS в стиле NUnit без использования mstest.exe. Известно ли вам о какой-либо отдельной утилите командной строки, которая делает это?


person Doron Yaacoby    schedule 14.10.2009    source источник
comment
Меня это тоже раздражало, поэтому я поднял его как запрос «голос пользователя». Если вы читаете это и чувствуете себя твердо, можете ли вы проголосовать за это? visualstudio.uservoice.com/forums/121579-visual- студия /   -  person James Wiseman    schedule 19.08.2015


Ответы (4)


Вы можете выполнять тесты групповой системы (MSTest) в NUnit, если используете специальный надстройку NUnit, которая распознает атрибуты теста MS (TestClass и т. Д.).

Exact Magic Software имеет тест с с открытым исходным кодом. -adapter ", который может это сделать.

ОБНОВЛЕНИЕ. Я переработал адаптер Msts NUnit от Exact Magic для NUnit 2.5.2.

person bryanbcook    schedule 18.10.2009
comment
Похоже, это то, что я ищу, только это не работает с последней версией NUnit (2.5.2). Я пробовал версию, в которой это должно работать (2.4.6), но похоже, что она не будет работать в моей системе (Windows 7). - person Doron Yaacoby; 19.10.2009
comment
Часто надстройки NUnit привязаны к структуре, в которой они были скомпилированы. Имеет отношение к тому, как NUnit и надстройка разрешают зависимости. Если они предоставят исходный код, вы сможете перекомпилировать с обновленной ссылкой. Это при условии, что они не делают чего-то особенного со сборками ядра 2.4.6, хотя по большей части основные интерфейсы не сильно изменились. Если я найду время, я могу попробовать. - person bryanbcook; 19.10.2009
comment
Я начал изучать это, похоже, что они внесли довольно много критических изменений в 2.5.2, поэтому потребуется некоторый рефакторинг, чтобы заставить адаптер работать. - person Doron Yaacoby; 20.10.2009
comment
Я смотрю на источник, как и ожидалось, они ссылаются на nunit-core.dll, что делает версию надстройки специфичной. Я немного занимался разработкой надстроек nunit, я пойму это и дам вам знать, что я нашел. - person bryanbcook; 20.10.2009
comment
Стек 2.5.x в значительной степени обратно совместим, но ссылки на nunit-core.dll исправляют его до конкретной версии. Я могу опубликовать новую версию (может потребоваться несколько дней, прежде чем я смогу добраться до нее), но это должно быть так же просто, как изменение ссылок и повторная компиляция. Источник доступен по этому URL-адресу. - person bryanbcook; 09.09.2010

Похоже, TeamCity просто использует Gallio для запуска тестов VS. Gallio, похоже, имеет интеграцию с msbuild и звучит идеально, но при более внимательном рассмотрении кажется, что для этого потребуется установка VS, как и MSTest, поскольку она, похоже, зависит от MS exes:

The plugin enable condition was not satisfied: '${process:DEVENV.EXE} or 
${process:VSTESTHOST.EXE} or 
${process:QTAGENT.EXE} or 
${process:QTAGENT32.EXE} or 
${process:QTDCAGENT.EXE} or 
${process:QTDCAGENT32.EXE}'.
Host process exited with code: 0

При этом, похоже, что по крайней мере у одного человека это работает:

Christoph De Baene - Запуск MSTest без Visual Studio < / а>

person John Lewin    schedule 17.10.2009

MSTests можно запускать без установки Visual Studio. См. how-do-i-use-mstest-without-visual-studio.

Я сделал это, чтобы я мог запускать свои тесты как часть моего процесса CI. (Я использую CC.NET для своего решения CI).


Я нахожусь в аналогичной ситуации, поскольку хочу использовать TestDriven.NET для получения статистики покрытия кода. Но у меня проблемы. Моя первая проблема заключается в том, что я использую атрибуты AssemblyInitialize для инициализации соединения с базой данных. Это не поддерживается NUnit, поэтому около половины моих тестов терпят неудачу, тогда как под MSTest они работают нормально.

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

person quip    schedule 15.10.2009
comment
Спасибо, мне известно о возможности запускать mstest.exe вне VS, но я вообще не хочу использовать MSTest из-за множества проблем. - person Doron Yaacoby; 16.10.2009
comment
Хорошо, тогда можно ли полностью отказаться от MSTest? Конвертировать все ваши тесты в NUnit? Просто кажется, что смешанная среда тестирования хуже, чем сама по себе MSTest. - person quip; 16.10.2009

Мы запускаем тесты VSTS с помощью msbuild TestToolsTask на Сервер круиз-контроля. При этом не используется исполняемый файл MSTEST - условие, о котором вы просите, - но используются различные зависимости TFS.

Обратите внимание, что мы переносим тесты из тестовой среды VSTS для NUnit, в основном потому, что мы можем создавать расширения для NUnit для выполнения полезных задач.

person Precipitous    schedule 21.10.2009