Quiero usar mstest.exe para ejecutar mi prueba unitaria en el servidor de compilación, pero no quiero instalar Visual Studio en el servidor de compilación. ¿Puedo instalar MSTest sin Visual Studio?
Quiero usar mstest.exe para ejecutar mi prueba unitaria en el servidor de compilación, pero no quiero instalar Visual Studio en el servidor de compilación. ¿Puedo instalar MSTest sin Visual Studio?
Respuestas:
Es posible ejecutar mstest.exe sin Visual Studio.
Descargue uno de los agentes ISO de Visual Studio a continuación e instale el agente de prueba en el servidor:
Visual Studio 2017 (127 MB de espacio en disco, menos que para la descarga)
Visual Studio 2015 (configuración de 128 MB, se requieren 2 GB de espacio en disco)
Visual Studio 2012 (224 MB)
Visual Studio 2013 (287 MB)
Visual Studio 2010 (515 MB)
Esto instala todo lo necesario para ejecutar mstest.exe desde la línea de comandos y es mucho más liviano que Visual Studio. ~ 500 MB de descarga y alrededor de ~ 300 MB para instalar solo el agente de prueba si no recuerdo mal.
ACTUALIZAR
Para versiones anteriores a VS 2017, mire aquí:
Esta respuesta se refiere específicamente a Visual Studio 2017, y la respuesta es sí . Sin embargo, tenga en cuenta que Microsoft (todavía) no proporciona ningún tipo de API oficial para localizar los ejecutables relevantes ( MSBuild.exe
y MSTest.exe
), por lo que está atascado leyendo las claves de registro y / o probando varios directorios para localizar estos archivos . Has sido advertido.
MSTest.TestFramework
en esos proyectos y elimine la referencia a Microsoft.VisualStudio.QualityTools.UnitTestFramework
de ellos. Ahora todo lo que necesita es instalar Visual Studio 2017 Build Tools e invocar msbuild.exe
para realizar la compilación.MSTest.exe
y vstest.console.exe
luego podrá llamarlo. Tenga en cuenta que averiguar dónde residen estos ejecutables es una molestia, porque no existirán en la misma estructura de directorios que MSBuild.exe
en las herramientas de compilación.Finalmente, y lo que es más importante: si usa MSTest.TestFramework
y aún necesita poder descubrir y ejecutar pruebas desde el IDE de Visual Studio, también necesitará MSTest.TestAdapter
instalarlo en sus proyectos de prueba unitaria.
1: Si bien VS2017 admite instalaciones en paralelo, utiliza una única clave de registro que solo registra la instalación más reciente. Por lo tanto, si instala Test Agent por último, la clave apuntará a su directorio de instalación ... pero Test Agent no lo incluye MSBuild.exe
, por lo que cualquier código que se base en esta clave de registro para averiguar la ruta del ejecutable fallará. Por qué Microsoft no pudo haber hecho del Agente de prueba una parte opcional de las herramientas de compilación (para que todos los EXE vivan en la misma jerarquía de directorios) es una incógnita.
File extension specified '.webtest' is not a valid test extension.
.
vswhere
es mejor que nada, pero aún debe suponer dónde se encuentra MSBuild en relación con el directorio de instalación de VS ... si (¿cuándo?) Microsoft decide reubicar cualquiera de esos ejecutables, esa suposición ya no es válida . Por qué Microsoft no puede o no quiere crear una forma programática para obtener la ruta a MSBuild / MSTest / VSTest (a diferencia del directorio de instalación de VS, que a nadie realmente le importa) queda fuera de mi alcance.
No test is available in C:\Users\..\Desktop\MyExeName.exe...
. He abierto una pregunta sobre SO . Si tiene alguna pista, agradecería su ayuda.
Creo que probablemente puedas, pero definitivamente no es compatible.
Encontré este artículo de blog escrito por alguien que afirma tener MSTest funcionando sin Visual Studio instalado.
@crocpulsar, necesita instalar Visual Studio en su servidor de compilación, pero NO necesita comprar una licencia adicional .
Hay demasiadas dependencias para que build & MSTest funcionen sin VS instalado, y definitivamente no es compatible.
Siempre que la persona que inicia la compilación tenga una licencia, no la necesita para el servidor de compilación. Este ha sido el caso desde los días oscuros de 2005, y mientras haya paridad de edición, entonces está bien.
Si todos en su equipo tienen Ultimate, entonces puede instalarlo en el servidor de compilación; pero si uno de los miembros de su equipo tiene Premium, idealmente debería instalar Premium en el servidor de compilación. Esto también habilita muchos otros bits como Cobertura de código, Análisis de impacto de prueba y Validación de arquitectura, entre otros.
Acabo de hacer que esto funcione en mis servidores sin instalar el IDE de Visual Studio 2017. Mi requisito era
Tuve que hacer una combinación de algunas cosas indicadas en otras respuestas y luego también otra aquí .
VS2017:
El paso 3 fue solucionar el siguiente problema:
"No se pudo resolver esta referencia. No se pudo ubicar el ensamblado" Microsoft.VisualStudio.QualityTools.UnitTestFramework ""
Que luego causó:
"error CS0234: el tipo o el nombre del espacio de nombres 'VisualStudio' no existe en el espacio de nombres 'Microsoft' (¿le falta una referencia de ensamblado?)"
No tuve que agregar ninguna referencia al proyecto. Sin embargo, la ruta al vstest.console.exe está contenida en la carpeta TestAgent (para mí era "C: \ Archivos de programa (x86) \ Microsoft Visual Studio \ 2017 \ TestAgent \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow" )
Estos son los pasos que tomé para que mi servidor de compilación ejecute MsTest sin instalar VS 2012:
Registre 'msdia110.dll' con c: /windows/syswow64/regsvr32.exe / i '../mstest/assemblies/msdia110.dll'(Esto arrojó un error, pero por alguna razón aún funcionó. Lo ejecuté un par veces y probé diferentes versiones de regsvr32.exe antes de verificar, pero está allí en el registro)
Agregue la variable de entorno 'MSTEST_HOME' y configúrela en 'c: \ dev \ mstest \' o en su ruta. Usé la variable de entorno en mi script de compilación.
Error de ejecución de depuración de MsTest:
Agregar a '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>
Si necesita ejecutar la herramienta de prueba web mstest.exe, puede instalar la versión de prueba de Visual Studio Enterprise y asegurarse de ejecutarla al menos una vez (simplemente iníciela) en la cuenta bajo la cual se ejecutará la prueba sin que sea necesario hacer nada adicional. Entonces, si su prueba se ejecuta en la cuenta del sistema, entonces debe usar algo como a continuación
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"