Я хочу использовать mstest.exe для запуска моего модульного теста на сервере сборки, но я не хочу устанавливать Visual Studio на сервере сборки. Могу я просто установить MSTest без Visual Studio?
visual-studio
mstest
build-server
Ян-цюй
источник
источник
Ответы:
Можно запустить 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 смотрите здесь:
https://www.visualstudio.com/vs/older-downloads/
источник
Этот ответ относится конкретно к 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
источник
Если вам нужно запустить инструмент веб-тестирования mstest.exe, вы можете установить пробную версию Visual Studio Enterprise и обязательно запустить ее хотя бы один раз (просто запустите ее) под учетной записью, под которой будет выполняться тест, без каких-либо дополнительных действий. Поэтому, если ваш тест выполняется под системной учетной записью, вам нужно использовать что-то вроде ниже
источник
MSTest был объявлен для пользователей .NET Core . В объявлении есть пример использования с
dotnet
инструментом. Я сам не придумал, как получить автономныйmstest
исполняемый файл.источник