5

Estoy usando TeamCity Professional para crear y probar mi código continuamente.Deshabilitar el directorio temporal de MSTest en TeamCity

Tengo algunas pruebas basadas en MSTest que funcionan bien en VS2010 en mi PC pero fallan en el servidor de compilación.

Estuve curioseando y descubrí que al realizar pruebas, TeamCity crea un directorio temporal en su TEMP_DIR (configurable) y copia solo las dependencias de "primera relación" con la DLL de prueba.

Por ejemplo: mi prueba utiliza NHibernate.dll que se copian en el directorio temporal, pero sus dependencias (es decir NHibernate.ByteCode.Castle) no se copian, y la prueba falla con una excepción IO.FileNotFound.

¿Hay alguna manera en que pueda ejecutar las pruebas desde el directorio de resultados de los proyectos de prueba (Test/bin/debug)?

Si no es así, ¿cómo puedo especificar qué archivos DLL se deben copiar en el directorio temporal?

Respuesta

13

Puede agregar un archivo TestSettings en su solución que describirá todos los archivos a implementar.

Primero, agregue un archivo TestSettings. Ábrelo y en la pestaña "Despliegue", agregue todo el archivo que necesita (su .dll). Luego en TeamCity, en el paso de compilación MSTest, especifique el archivo TestSettings para usar en el área "Parámetros de comando adicionales". Ejemplo: "/testsettings:Local.Testsettings"

De esta manera, todos los archivos que especifique en los elementos de implementación se copiarán en el directorio temporal.

+0

Excelente, esto me salvó el día, ¡dale! –

+3

Esto me ayudó, ¡gracias! Dos notas que podrían ayudar a otros: Primero, pude especificar el archivo xxx.Testsettings en el "archivo de configuración de ejecución MSTest:" para la configuración de TeamCity. En segundo lugar, este campo espera la ruta al archivo desde el directorio de trabajo en TeamCity, que es esencialmente el nivel superior de su repositorio. – ruttopia

Cuestiones relacionadas