Serghei, como Daniel Hilgarth señala que es aconsejable incluir los proyectos de prueba de la unidad en su solución principal. Además, es aconsejable tener una relación 1: 1 entre sus proyectos de desarrollo y los proyectos de prueba de la unidad.
Dicho esto, algo importante a tener en cuenta es que la cantidad de proyectos en una solución aumenta el tiempo de compilación de forma no lineal.
¡Un proyecto en el que he trabajado recientemente tenía 97 proyectos en una solución! El tiempo de construcción fue de más de 10 minutos. Al consolidar el código en menos proyectos, el tiempo de construcción se redujo a 2 minutos para el mismo LOC.
La pérdida de productividad del desarrollador a costa de la "corrección" puede ser muy costosa a largo plazo. No solo se pierde el tiempo de construcción, sino también el tiempo perdido debido a una interrupción en la concentración, la molestia en nombre del desarrollador, etc. ... ¿Cuántas veces ha sido detenido por una compilación lenta/computadora/IDE y terminó navegando por la web, perdiendo 10 minutos antes de que te des cuenta "¡Oh, las construcciones terminaron!". He estado en una situación como esta tan mal que el tiempo que pasé entre compilaciones se gastó en sitios web de trabajo de navegación ;-)
Como solución alternativa en soluciones grandes lo he hecho.
- Crear una solución para dev ligera (sólo proyectos dev)
- crear otra para los proyectos de las mismas, además de las pruebas de unidad dev.
- Mantenga abiertas las dos instancias de Visual Studio durante el desarrollo. De esta forma obtengo un ciclo de compilación/ejecución/depuración corto para el desarrollo, pero puedo verificar el estado de las pruebas (compilación, ejecución) en cualquier momento.
- Cuando llegue el momento de registrarme, me aseguraré de que las compilaciones del proyecto de prueba dev + unit, las pruebas pasen y yo realice el check-in.
Esto introduce la posibilidad de que las pruebas de su unidad no se construyan ya que su código de desarrollo difiere del código que las pruebas de la unidad esperan, sin embargo es un equilibrio. Se debe realizar una compensación para garantizar la mayor productividad, ya sea mediante el desarrollo puro o la fijación de pruebas rotas en todo momento.La productividad puede ser erosionado no sólo a través de la acumulación lenta e IDE, sino también mediante la fijación de esas pruebas rotas, así que hay que asegurarse de que no gire demasiado lejos cuando este equilibrio.
Un último punto a hacer es la siguiente. ¿Ha considerado configurar un archivo de proceso por lotes de la consola para realizar la construcción de la ciudad del equipo en PC de desarrollo local? Esto se puede realizar como último paso antes del check-in para garantizar que los desarrolladores estén revisando el código que se crea y pasa de acuerdo con la configuración de TC.
Saludos,
Gracias por la respuesta que he entendido en la solución con el proyecto de prueba de unidad que debería incluir el proyecto desde otra solución wich Quiero probar que es correcto? – Serghei
Sí. También significaría incluir todos los proyectos a los que hace referencia el proyecto que desea probar, etc. –