Ответы:
Можно запустить mstest.exe без Visual Studio.
Загрузите один из агентов ISO для Visual Studio ниже и установите агент тестирования на сервер:
Visual Studio 2017 (127 МБ дискового пространства, меньше, чем для загрузки)
Visual Studio 2015 (128 МБ для установки, 2 ГБ дискового пространства)
Visual Studio 2012 (224 МБ)
Visual Studio 2013 (287 МБ)
Visual Studio 2010 (515 МБ)
Это устанавливает все необходимое для запуска mstest.exe из командной строки и намного легче, чем Visual Studio. ~ 500 МБ загрузки и около ~ 300 МБ для установки только тестового агента, если я правильно помню.
ОБНОВИТЬ
Для версий старше VS 2017 смотрите здесь:
Этот ответ относится конкретно к Visual Studio 2017, и ответ - да . Однако имейте в виду, что Microsoft (по-прежнему) не предоставляет какого-либо официального API для поиска соответствующих исполняемых файлов ( MSBuild.exe
и MSTest.exe
), поэтому вы застряли при чтении ключей реестра и / или проверке различных каталогов, чтобы найти эти файлы . Вас предупредили.
MSTest.TestFramework
в эти проекты и удалите Microsoft.VisualStudio.QualityTools.UnitTestFramework
из них ссылку на . Теперь все, что вам нужно, - это установить Visual Studio 2017 Build Tools и вызвать msbuild.exe
для выполнения сборки.MSTest.exe
и vstest.console.exe
вы можете затем позвонить. Обратите внимание, что на самом деле выяснить, где находятся эти исполняемые файлы, сложно, потому что они не будут существовать в той же структуре каталогов, что и MSBuild.exe
в Build Tools.И, наконец, что очень важно: если вы используете MSTest.TestFramework
и по-прежнему нуждаетесь в возможности обнаруживать и запускать тесты из среды разработки Visual Studio, вам также необходимо MSTest.TestAdapter
установить их в свои проекты модульного тестирования.
1. VS2017 поддерживает параллельную установку, но использует один раздел реестра, в котором записывается только самая последняя установка. Следовательно, если вы устанавливаете тестовый агент последним, ключ будет указывать на его установочный каталог ... но тестовый агент не включает MSBuild.exe
, поэтому любой код, который полагается на этот раздел реестра для определения пути к этому исполняемому файлу, завершится ошибкой. Остается только догадываться, почему Microsoft не могла сделать Test Agent необязательной частью Build Tools (чтобы все EXE-файлы располагались в одной иерархии каталогов).
File extension specified '.webtest' is not a valid test extension.
.
vswhere
лучше, чем ничего, но вам все равно нужно сделать предположение о том, где находится MSBuild относительно каталога установки VS ... если (когда?) Microsoft решит переместить любой из этих исполняемых файлов, это предположение больше не верно . Почему Microsoft не может или не хочет создать программный способ получения пути к MSBuild / MSTest / VSTest (в отличие от каталога установки VS, который никого не волнует) остается за мной.
No test is available in C:\Users\..\Desktop\MyExeName.exe...
. Я открыл вопрос по ТАК . Если у вас есть какие-то подсказки, буду благодарен за вашу помощь.
Я думаю, что вы, вероятно, можете, но это определенно не поддерживается.
Я нашел эту статью в блоге, написанную кем-то, кто утверждает, что MSTest работает без установленной Visual Studio.
@crocpulsar, вам необходимо установить Visual Studio на свой сервер сборки, но вам НЕ нужно покупать дополнительную лицензию .
Существует слишком много зависимостей для того, чтобы сборка и MSTest работали без установленного VS, и, безусловно, он не поддерживается.
Если у человека, запускающего сборку, есть лицензия, она вам не понадобится для сервера сборки. Так было с мрачных дней 2005 года, и пока существует паритет изданий, все в порядке.
Если у всех в вашей команде есть Ultimate, вы можете установить его на сервере сборки; но если у одного из членов вашей команды есть Premium, то в идеале вам следует установить Premium на сервер сборки. Это также позволяет использовать множество других элементов, таких как покрытие кода, анализ воздействия тестирования и проверка архитектуры.
Я только что заставил это работать на моих серверах без установки IDE Visual Studio 2017. Мое требование было
Мне пришлось сделать комбинацию из нескольких вещей, изложенных в других ответах, а затем еще одну здесь .
VS2017:
Шаг 3 заключался в устранении следующей проблемы:
«Не удалось разрешить эту ссылку. Не удалось найти сборку« Microsoft.VisualStudio.QualityTools.UnitTestFramework »»
Что затем вызвало:
«ошибка CS0234: тип или имя пространства имен« VisualStudio »не существует в пространстве имен« Microsoft »(отсутствует ссылка на сборку?)»
Ссылки на проект мне добавлять не пришлось. Однако путь к vstest.console.exe содержится в папке TestAgent (для меня это был «C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ TestAgent \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow» )
Вот шаги, которые я предпринял, чтобы заставить мой сервер сборки запускать MsTest без установки VS 2012:
Зарегистрируйте 'msdia110.dll' с помощью c: /windows/syswow64/regsvr32.exe / i '../mstest/assemblies/msdia110.dll'( Это выдало ошибку, но по какой-то причине все еще работало. Я запускал его пару раз и пробовал разные версии regsvr32.exe, прежде чем проверять, но он есть в реестре)
Добавьте переменную среды «MSTEST_HOME» и установите для нее значение «c: \ dev \ mstest \» или свой путь. Я использовал переменную среды в моем сценарии сборки.
Отладка ошибки выполнения MsTest:
Добавить в MsTest.exe.config
<system.diagnostics>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="EqtListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="C:\MsTest.log" />
</listeners>
</trace>
<switches>
<add name="EqtTraceLevel" value="Verbose" />
</switches>
</system.diagnostics>
Если вам нужно запустить инструмент веб-тестирования mstest.exe, вы можете установить пробную версию Visual Studio Enterprise и обязательно запустить ее хотя бы один раз (просто запустите ее) под учетной записью, под которой будет выполняться тест, без каких-либо дополнительных действий. Поэтому, если ваш тест выполняется под системной учетной записью, вам нужно использовать что-то вроде ниже
PS C:\agent> psexec -s cmd.exe
C:\Windows\system32>"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\mstest.exe"
Microsoft (R) Test Execution Command Line Tool Version 15.0.27520.0
Copyright (c) Microsoft Corporation. All rights reserved.
Please specify tests to run, or specify the /publish switch to publish results.
For switch syntax, type "MSTest /help"