2012-01-19 8 views
26

Mi solución VS2010 tiene un proyecto de prueba. La unidad pone a prueba a sí mismos hacen referencia al siguiente espacio de nombres:Proyecto de prueba de unidad que no se genera desde el servidor de compilación

using Microsoft.VisualStudio.TestTools.UnitTesting; 

que se accede a través de la siguiente asamblea en mi PC:

Assembly Microsoft.VisualStudio.QualityTools.UnitTestFramework 
    C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ 
    PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 

Cuando construyo la solución en mi PC que no tienen problemas; las pruebas se construirán y ejecutarán bien.

Tenemos una página de intranet que podemos utilizar para iniciar compilaciones en un servidor de compilación. Cuando construyo a través de esta página, la generación falla con los siguientes errores:

Generator.cs(3,17): error CS0234: The type or namespace name 'VisualStudio' 
does not exist in the namespace 'Microsoft' (are you missing an assembly 
reference?) 

El problema obvio sería que el Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll mencionado anteriormente no está presente en el servidor de compilación. Pensé que esto se instalaría con VS2010, y dado que los proyectos en mi solución crean objetivos de .NET 4.0, esperaría que esto se instale en el servidor de compilación.

¿Cuál es la forma más fácil de resolver esto? El servidor de compilación está fuera de mi jurisdicción y, en particular, no quiero registrar un trabajo para instalar nuevas bibliotecas en él.

Respuesta

23

El archivo .UnitTestFramework.dll se encuentra en la carpeta C: \ Archivos de programa ... y tiene una referencia al mismo.

  1. Crear directorio con el control de código fuente ej. Fuente/binarios
  2. copiar el archivo DLL en dicho Fuente/binarios
  3. eliminar la referencia a .UnitTestFramework.dll de su conjunto de prueba de unidad
  4. Añadir la referencia a .UnitTestFramework.dll a su conjunto de prueba de unidad, pero esta vez seleccione el dll que ahora está en Fuente/Binarios

Después de eso, puede comprobar sus cambios (asegúrese de que la carpeta Fuente/Binarios está marcada) y compilar la solución. Cuando el servidor de compilación construye la solución, debe obtener el dll del control de origen.

+0

¿No habría problemas de licencia con esos dlls cuando, por ejemplo, tener su proyecto como un proyecto de código abierto, por ej. Github? –

+6

Solo para responder a mi propio comentario: Sí, habrá problemas de licencia; esto no estaría permitido: http://social.msdn.microsoft.com/Forums/vstudio/en-US/32384366-b668-4f18-99eb- 9c67f7eef233/redistributing-microsoftvisualstudioqualitytoolsunittestframeworkdll –

+0

Hice lo que sugiere la respuesta. funciona para mi PC de desarrollo (con VS) y nuestro servidor de CI (sin VS). Prefiero tener el DLL tirado por NuGet, pero no puedo hacer que funcione. –

10

La respuesta específica para mí y una solución de Visual Studio 2010 fue:

  1. Instalar "Test Agent 2010" de Visual Studio Agents 2010
  2. Reiniciar Windows
  3. Instalar Visual Studio 2010 Service Pack 1
  4. Reiniciar Windows
  5. Asegurar las referencias de los proyectos se actualizan para que apunten a "Microsoft.VisualStudio.QualityTools.UnitTestFramework" "10.1.0.0" y no a "10.0.0.0".
+1

Tenga en cuenta que Visual Studio Agents 2015 instala el marco 4.6.1 si su servidor aún no lo tiene – Hoppe

Cuestiones relacionadas