Могу ли я использовать mstest.exe без установки Visual Studio?

Я хочу использовать mstest.exe для запуска модульного теста на сервере сборки, но я не хочу устанавливать Visual Studio на сервере сборки. Могу ли я просто установить MSTest без Visual Studio?

8 ответов


можно запустить mstest.exe без visual studio.
Загрузите один из агентов для Visual Studio ISO ниже и установите Агент на сервере:

Visual Studio 2017 (127 Мб дискового пространства, меньше, чем для загрузки)
Visual Studio 2015 (настройка 128 МБ, требуется дисковое пространство 2 ГБ)
Visual Studio 2012 (224 МБ)
Visual Studio 2013 (287MB)
визуальный Студия 2010 (515MB)

Это устанавливает все необходимое для запуска mstest.exe из командной строки и намного легче, чем visual studio. ~500mb скачать и около ~300mb, чтобы установить только тестовый агент, если я правильно помню.

обновление

для версий старше, чем VS 2017, смотрите здесь:

https://www.visualstudio.com/vs/older-downloads/


этот ответ относится конкретно к Visual Studio 2017, и ответ да. Однако имейте в виду, что Microsoft (по-прежнему) не предоставляет какого-либо официального API для поиска соответствующих исполняемых файлов (MSBuild.exe и MSTest.exe), so вы застряли чтение ключей реестра и/или зондирования различных каталогах, чтобы найти эти файлы. Вас предупредили.

  • Если вам нужны только построить ваш проект модульных тестов(с), установите пакет MSTest.TestFramework в эти проекты и удалите ссылку на Microsoft.VisualStudio.QualityTools.UnitTestFramework из них. Теперь все, что вам нужно это установить Инструменты Сборки Visual Studio 2017 и вызвать msbuild.exe для выполнения сборки.
  • Если вам нужно выполнить ваши тесты, а также, вещи становятся сложнее:
    • самое простое решение-установить VS2017 Community Edition (который включает в себя как msbuild, так и mstest) -но я не уверен в законность этого, и я не юрист, так что будьте осторожны!
    • юридически лучше всего (и гораздо легче, с точки зрения дискового пространства) - установка Агент Тестирования Visual Studio 2017 и затем инструменты сборки для Visual Studio 2017 (точный порядок жизненно важен1); это даст вам MSTest.exe и vstest.console.exe который вы можете затем вызвать. Обратите внимание, что на самом деле выяснить, где находятся эти исполняемые файлы боль, потому что они не будут существовать в той же структуре каталогов, что и MSBuild.exe в инструментах сборки.

и, наконец, очень важно: если вы используете MSTest.TestFramework и все еще нужно иметь возможность обнаруживать и запускать тесты из среды Visual Studio IDE, вам также понадобится MSTest.TestAdapter установлен в проект(ы) модульного тестирования.

1: хотя VS2017 поддерживает параллельные установки, он использует один раздел реестра, который записывает только большинство недавняя установка. Следовательно, если вы устанавливаете агент тестирования последним, ключ будет указывать на его каталог установки... но агент тестирования не включает MSBuild.exe, поэтому любой код, который полагается на этот раздел реестра, чтобы выяснить путь к исполняемому файлу, потерпит неудачу. Почему Microsoft не могла сделать агент тестирования необязательной частью инструментов сборки (чтобы все бывшие жили в одной иерархии каталогов), можно только догадываться.


Я думаю, что вы, вероятно, можете, но его определенно не поддерживается.

Я нашел эту статью в блоге, написанную кем-то, кто утверждает, что MSTest работает без установленной Visual Studio.


@crocpulsar, вам нужно установить Visual Studio на ваш сервер сборки,но вам не нужно покупать дополнительную лицензию.

существует слишком много зависимостей для получения build & MSTest для работы без VS, и он определенно не поддерживается.

пока у человека, который запускает сборку, есть лицензия, она не нужна для сервера сборки. Это было так с темных дней 2005 года, и до тех пор, пока есть паритет издания, то вы в порядке.

Если каждый в вашей команде имеет Ultimate, то вы можете установить его на сервере сборки; но если один из членов вашей команды имеет Premium, то вы должны идеально установить Premium на сервере сборки. Это также позволяет использовать множество других битов, таких как покрытие кода, анализ влияния тестирования и проверка архитектуры.


вот шаги, которые я предпринял, чтобы заставить мой сервер сборки запустить MsTest без установки VS 2012:

  1. создана папка каталога "Mstest" в c:\dev - ...
  2. Копировать '.exe " и " Mstest.исполняемый.config 'from C:\Program файлы (x86)\Microsoft Visual Studio 11.0\Common7\IDE в каталог "Mstest"
  3. Скопировать Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll в каталог "Mstest"
  4. созданный каталог ' assemblies 'в'Mstest' папка
  5. извлечены все V11 Microsoft.VisualStudio.QualityTools.*.DLL из C:\Windows\assembly в каталог "Mstest / assemblies"
  6. скопируйте все' v11 ' Microsoft.VisualStudio.QualityTools..библиотек DLL и Microsoft.VisualStudio.TestTools..DLL из C:\Windows\Microsoft.NET\assembly\GAC_MSIL в 'Mstest / assemblies'
  7. скопируйте все V11 Microsoft.VisualStudio.QualityTools..библиотек DLL и Microsoft.VisualStudio.TestTools..dll из C:\Program Файлы (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies для "Mstest/assemblies"
  8. добавьте 'assemblies' к атрибуту 'privatePath' в ' Mstest.исполняемый.config'
  9. экспорт " HKEY_LOCAL_MACHINE / SOFTWARE/Wow6432Node/Microsoft/VisualStudio/11.0/Enterprise / QualityTools и применить его к Хадсон box.
  10. Копировать QTAgent32.exe и QTAgent32.исполняемый.config в каталог "MsTest" из C:\Program файлы (x86)\Microsoft Visual Studio 11.0\Common7\IDE
  11. добавьте "сборки" в атрибут "privatePath" в " QTAgent32.исполняемый.config'
  12. копировать ' msdia110.dll файлы от файлов C:\Program (х86)\Майкрософт Visual студии\11.0 Common7\Packages и отладчик\' на 'действия MSTest/сборки'
  13. Регистрация 'msdia110.dll ' с c:/windows/syswow64/regsvr32 - ... exe / i '../mstest / сборки / msdia110.dll " (это вызвало ошибку, но по какой-то причине она все еще работала. Я запустил его пару раз и попробовал другой regsvr32.исполняемый версии, прежде чем я проверил, но она есть в реестре)

  14. добавить переменную среды 'MSTEST_HOME' и установить ее в 'c:\dev\mstest или на твой путь. Я использовал переменную среды в своем скрипте сборки.

ошибка выполнения отладки MsTest:

добавить в ' MsTest.исполняемый.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 был объявлено для .NET Core пользователи. Объявление имеет пример использования с . Я не понял, как получить автономный mstest исполняемый файл.


Если вам нужно запустить mstest.exe webtest инструмент, то вы можете установить Visual Studio Enterprise trial и убедитесь, что запустить его по крайней мере один раз (просто запустите его) под учетной записью, под которой тест будет работать без каких-либо дополнительных необходимо сделать. Поэтому, если ваш тест выполняется под системной учетной записью, вам нужно использовать что-то вроде ниже

PS C:\agent> psexec -s cmd.exe
C:\Windows\system32>"C:\Program Files (x86)\Microsoft Visual Studio17\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"

Я только что получил эту работу на своих серверах без установки Visual Studio 2017 IDE. Мое требование было

  • проектов
  • создавать тестовые проекты
  • запуск тестов с помощью VSTest (я считаю, что это аналогичный процесс для MSTest)

Мне пришлось сделать комбинацию нескольких вещей, изложенных в других ответах, а затем еще один здесь.

VS2017:

  1. BuildTools - это можно найти на страница загрузки Microsoft, а затем прокрутите вниз до "Tools for Visual Studio 2017" - > "Build Tools for Visual Studio 2017"
  2. TestAgent - это можно найти на страница загрузки Microsoft, а затем прокрутите вниз до "инструменты для Visual Studio 2017" - > " агенты для Visual Studio 2017"
  3. Пакет Nuget включить dll модульного тестирования visual studio-Это можно найти здесь

Шаг 3 должен был исправить следующую проблему:

" не удалось разрешить эту ссылку. Не удалось найти сборку " Microsoft.VisualStudio.QualityTools.UnitTestFramework""

который затем вызвал:

"ошибка CS0234: тип или имя пространства имен "VisualStudio" не существует в пространстве имен 'Microsoft' (пропущена ссылка на сборку?) "

Мне не нужно было добавлять ссылки на проект. Однако, путь к vstest.приставка.exe содержится в папке TestAgent (для меня это было "C:\Program файлы (x86)\Microsoft Visual Studio\2017\TestAgent\Common7\IDE\CommonExtensions\Microsoft\TestWindow")