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


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

8 93

8 ответов:

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

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

Это устанавливает все необходимое для запуска 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 для выполнения сборки.
  • Если вам нужно выполнить ваши тесты, а также, все становится сложнее:
    • самое простое решение-установить 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. Скопировано ' Mstest.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. добавить 'сборки' в атрибут 'privatePath' в ' Mstest.исполняемый.конфигурации'
  9. экспорт ' HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Microsoft/VisualStudio/11.0/Enterprise / QualityTools и применить его к hudson box.
  10. Копировать QTAgent32.exe и QTAgent32.исполняемый.config в каталог 'MsTest' из C:\Program файлы (x86)\Microsoft Visual Studio 11.0\Common7\IDE
  11. добавить 'сборки' в атрибут 'privatePath' в ' QTAgent32.исполняемый.конфигурации'
  12. копировать ' msdia110.dll файлы от файлов C:\Program (х86)\Майкрософт Visual студии\11.0 Common7\Packages и отладчик\' на 'действия MSTest/сборки'
  13. Регистрация 'msdia110.dll ' с c:/windows/syswow64/regsvr32.exe / i '../mstest / assemblies / msdia110.dll'(это вызвало ошибку, но по какой-то причине она все еще работала. Я запустил его пару раз и попробовал разные regsvr32.исполняемый версии до того, как я проверил, но это есть в реестре)

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

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

добавить в ' MsTest.исполняемый.конфигурации'

<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 tool затем вы можете установить 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")