2009-10-14 2 views
14

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

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

+0

Это было для меня досадой, поэтому я поднял его как запрос пользователя. Если вы читаете это и чувствуете себя уверенно, можете ли вы проголосовать за него? https: //visualstudio.uservoice.com/forums/121579-visual-studio/ideas/4619858-mstest-api –

ответ

19

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

Программное обеспечение Exact Magic имеет open-source "test-adapter", который может это сделать.

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

+1

Похоже, это то, что я ищу, только он не работает с последней версией NUnit (2.5.2). Я пробовал версию, на которой это должно выполняться (2.4.6), но похоже, что она не будет работать в моей системе (Windows 7). –

+0

Часто, NUnit addins привязаны к структуре, под которой они были скомпилированы. Имеет отношение к способам NUnit и зависимостей решения addin. Если они предоставляют источник, вы должны иметь возможность перекомпиляции с обновленной ссылкой. Это предполагает, что они не делают что-то конкретное с ядрами 2.4.6, хотя по большей части основные интерфейсы не сильно изменились. Если я найду время, я могу отдать это. – bryanbcook

+0

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

0

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

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


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

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

+0

Спасибо, я знаю, что могу запустить mstest.exe вне VS, но я не хочу использовать MSTest вообще, из-за его много вопросов. –

+0

Окей - значит, вы можете полностью отказаться от MSTest? Преобразуйте все ваши тесты в NUnit? Кажется, что смешанная среда тестирования хуже, чем MSTest сама по себе. – quip

1

Кажется, что TeamCity просто использует Gallio для запуска VS-тестов. Галлион, как представляется, интеграция 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 - Running MSTest without Visual Studio

0

Мы проводим VSTS тесты с использованием MSBuild TestToolsTask на сервере круиз-контроль. Это не использует исполняемый файл MSTEST - условие, которое вы запрашиваете, но использует различные зависимости TFS.

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

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