2010-08-04 12 views
86

Quiero usar mstest.exe para ejecutar mi prueba de unidad en el servidor de compilación, pero no quiero instalar Visual Studio en el servidor de compilación. ¿Puedo instalar MSTest sin Visual Studio?¿Puedo usar mstest.exe sin instalar Visual Studio?

+0

Puede proporcionar un poco más de detalle. ¿Qué versión? ¿Construir servidor? etc. –

Respuesta

136

Es posible ejecutar MSTest.exe sin Visual Studio.
Descarga uno de los agentes para Visual Studio ISO de abajo e instalar el agente de prueba en el servidor:

Visual Studio 2017 (espacio en disco 127MB, menor que la de descarga)
Visual Studio 2015 (configuración de 128 MB, espacio en disco se necesitan 2 GB)
Visual Studio 2012 (224 MB)
Visual Studio 2013 (287MB)
Visual Studio 2010 (515MB)

Esto instala todo lo necesario para correr mstest.exe desde la línea de comandos y es mucho más ligero que Visual Studio. ~ 500mb de descarga y alrededor de ~ 300mb para instalar solo el agente de prueba si no recuerdo mal.

ACTUALIZACIÓN

Para versiones anteriores de VS 2017, mira aquí:

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

+10

Puede descargar [Agents for Visual Studio 2012] (http://www.microsoft.com/en- us/download/details.aspx? id = 38186) también. – djeebus

+0

¿Dónde se coloca MsTest.exe después de instalar TestAgent y TestController? –

+3

C: \ Archivos de programa \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ MSTest.exe – Foole

4

creo que es probable que pueda, pero es sin duda no es compatible.

he encontrado este artículo de blog escrito por alguien que dice tener MSTest trabajando sin instalado Visual Studio.

+0

Cualquier URL con la palabra Hacking realmente requiere cuestionar el valor del esfuerzo. Si MS decide cambiar su implementación, su entorno podría ser volátil y podrían ocurrir cosas inesperadas con cada actualización de Windows (mantenemos actualizaciones regulares, ¿no?). – Russell

+0

En este caso, parece poco probable que una actualización de Windows rompa el hack. Pero la versión más nueva de mstest (por ejemplo, dentro de una versión más nueva o un service pack de VS) puede funcionar de manera diferente. –

+0

@Russell - Personalmente, pagaría una licencia VS adicional, o simplemente usaría NUnit. – Justin

4

@crocpulsar, es necesario instalar Visual Studio en el servidor de compilación, , pero que no es necesario comprar una licencia adicional.

Existen demasiadas dependencias para que la compilación & MSTest funcione sin VS instalado, y definitivamente no es compatible.

Mientras la persona que inicia la acumulación tiene una licencia, que no necesita uno para la construcción de servidor. Este ha sido el caso desde los días oscuros de 2005, y mientras haya paridad de edición, entonces usted está bien.

Si todos en su equipo tiene último, a continuación, usted es libre de instalarlo en el servidor de compilación; pero si uno de los miembros de su equipo tiene Premium, entonces idealmente debe instalar Premium en el servidor de compilación. Esto también permite muchos otros bits como Cobertura de código, Análisis de impacto de prueba y Validación de arquitectura, entre otros.

+0

Como referencia, aquí hay una publicación de microsoft en este http://blogs.msdn.com/b/jeffbe /archive/2008/03/18/licensing-team-system-editions-for-your-build-machine.aspx – Maslow

1

Éstos son los pasos que tomó para conseguir mi servidor de compilación para funcionar MSTEST sin necesidad de instalar VS 2012:

  1. crea la carpeta directorio 'Mstest' en c: \ dev.
  2. copiado 'MSTest.exe' y 'Mstest.exe.config' de C: \ Archivos de programa (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE a 'Mstest' directorio
  3. Copia Microsoft.VisualStudio... QualityTools.UnitTestFramework.dll al directorio 'Mstest' ha creado un directorio
  4. 'asambleas en la carpeta 'Mstest'
  5. extraído todos Microsoft.VisualStudio.QualityTools v11 * DLL de C: \ Windows \ assembly a 'MSTEST/conjuntos 'directorio
  6. Copie todo' v11 'Microsoft.VisualStudio.QualityTools. .dlls y Microsoft.VisualStudio.TestTools. .dlls de C: \ Windows \ Microsoft.NET \ assembly \ GAC_MSIL a 'Mstest/ensamblados'
  7. Copie todo v11 Microsoft.VisualStudio.QualityTools. .dlls y Microsoft.VisualStudio.TestTools. .dll de C: \ Archivos de programa (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ PrivateAssemblies a 'MSTEST/asambleas
  8. Add' asambleas al atributo 'privatePath' de en 'Mstest.exe.config '
  9. Exporte' HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Microsoft/VisualStudio/11.0/Enterprise/QualityTools y aplíquelo a la caja hudson.
  10. Copia QTAgent32.exe y QTAgent32.exe.config al directorio 'MSTEST' de C: \ Archivos de programa (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE
  11. Add 'asambleas' para el atributo 'privatePath' de en 'QTAgent32.exe.config'
  12. Copiar 'msdia110.dll' desde 'C: \ archivos de programa (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ Packages \ depurador' a 'MSTEST/asambleas
  13. Registro 'msdia110.dll' con c:. /windows/syswow64/regsvr32.exe/i' ../mstest/assemblies/msdia110.dll'(This arrojó un error, pero por alguna razón que aún funcionaba me encontré con un par de veces e intenté diferentes versiones de regsvr32.exe antes de verificar, pero está ahí en el registro)

  14. 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.

Depuración MSTEST error de ejecución:

Añadir 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> 
0

MSTest era announced for .NET Core usuarios. El anuncio tiene un ejemplo de uso con la herramienta dotnet. No me he figurado cómo hacer que el ejecutable independiente mstest sea ejecutable.

8

Esta respuesta pertenece específicamente a Visual Studio 2017, y la respuesta es . Tenga en cuenta, sin embargo, que Microsoft (todavía) no proporciona ningún tipo de API oficial para la localización de los archivos ejecutables relevantes (MSBuild.exe y MSTest.exe), por lo you are stuck reading registry keys and/or probing various directories to locate these files. Has sido advertido.

  • Si sólo necesita acumulación su proyecto (s) prueba de la unidad, instale el paquete MSTest.TestFramework en los proyecto (s) y retirar la referencia a Microsoft.VisualStudio.QualityTools.UnitTestFramework de ellos. Ahora todo lo que necesita es instalar el Visual Studio 2017 Build Tools e invocar msbuild.exe para realizar la compilación.
  • Si necesita plazo sus pruebas, así, las cosas se vuelven más difíciles:
    • La solución más sencilla es instalar VS2017 Community Edition (que incluye tanto msbuild y mstest) - , pero estoy seguro de la legalidad de esto, y no soy un abogado, ¡así que ten cuidado!
    • Una solución jurídicamente más seguro (y mucho más ligero, en términos de espacio en disco) es instalar el Visual Studio 2017 Test Agent y luego Build Tools for Visual Studio 2017 (orden exacto es de vital importancia); esto le dará MSTest.exe y vstest.console.exe que luego puede llamar. Tenga en cuenta que en realidad averiguar dónde residen estos ejecutables es un problema, ya que no existirán en la misma estructura de directorios como MSBuild.exe en herramientas de compilación.

Por último, y muy importante: si usted hace uso de MSTest.TestFramework y todavía tienen que ser capaces de descubrir y ejecutar pruebas desde el IDE de Visual Studio, también necesitará MSTest.TestAdapter instalado en su proyecto de prueba de unidad (s)

1: Si bien VS2017 admite instalaciones una al lado de la otra, usa una sola clave de registro que solo registra la instalación más reciente. Por lo tanto, si instala Test Agent por última vez, la clave apuntará a su directorio de instalación ... pero Test Agent no incluye MSBuild.exe, por lo que cualquier código que dependa de esta clave de registro para descubrir la ruta del ejecutable fallará. Microsoft adivina por qué Microsoft no podría haber convertido al agente de prueba en una parte opcional de las herramientas de compilación (para que todas las EXEs vivan en la misma jerarquía de directorios).

+0

Instalado a través del método Test Agent pero mstest.exe todavía falla con 'File extension specified '.webtest' no es una extensión de prueba válida .' para mí. –

Cuestiones relacionadas