Soy "relativamente nuevo" para pruebas unitarias y TDD. Recientemente, he completado mi primera aplicación de producción que tiene (al menos en teoría) una cobertura de código del 100%. También realicé pruebas unitarias en proyectos previos durante un tiempo, pero no en la forma real de TDD y con una buena cobertura de código. Siempre había sido una idea tardía. Sin embargo, siento que tengo una buena comprensión de eso.Infraestructura requerida para TDD?
También estoy tratando de entrenar al resto del equipo en TDD y pruebas unitarias para que podamos crecer juntos y comenzar a avanzar haciendo pruebas unitarias en todas nuestras aplicaciones, y eventualmente progresar a hacer un TDD completo con compilaciones automatizadas & integración continua. Publiqué a thread here con respecto a mi plan de ataque/agenda de entrenamiento para comentarios & critisism.
Una de las respuestas (de hecho, la más votada) sugirió que primero configurara la infraestructura antes de continuar con la capacitación. Desafortunadamente no tengo ninguna exposición a esto, y buscar en Google sobre los temas es difícil porque las páginas de CruiseControl.NET/nAnt/etc no explican realmente el 'por qué' deberíamos configurar esto y el 'cómo' se conecta todo a tu padre.
Somos una pequeña tienda (unos 10 desarrolladores) y utilizamos casi exclusivamente tecnologías de microsoft y hacemos nuestro desarrollo en VB.NET. Estamos buscando eventualmente comenzar a usar C#, pero eso es para otro momento. He estado usando el proyecto MSTest que viene con VS2008 para las pruebas de mi unidad, y he estado construyendo mis aplicaciones usando Visual Studio y desplegando proyectos de instalación de MSI ... También (desafortunadamente) usamos VSS para nuestro control de calidad: pero eso también está en la tabla de cortar y realmente me gustaría deshacerme de él y usar la subversión.
Sé que necesito usar CruiseControl.NET para CI y nAnt o MSBuild para compilar las aplicaciones. Y probablemente necesite un servidor de compilación para ejecutar todas estas compilaciones. Pero simplemente no puedo encontrar nada que 'conecte' los puntos y explica cómo interactúan entre sí, qué debería estar en su servidor de compilación, cuándo debe compilar con su servidor de compilación (es solo para compilaciones de despliegue, o incluso cuando solo desea compilar la aplicación que está desarrollando después de hacer un pequeño cambio, en su entorno local?). También estoy planeando eliminar MSTest ya que he encontrado que tiene errores y usaré nUnit en su lugar.
¿Alguien puede iluminar este vacío que tengo de 'saber cómo hacer TDD' a 'establecer la infraestructura adecuada para que todo el equipo pueda hacerlo y trabajar juntos'? Entiendo lo que es la integración continua, pero una vez más, no estoy seguro de cómo debe configurarse un servidor de compilación y cómo se conecta con todo, y por qué necesitamos uno (por ejemplo, el tono para la administración).
muchas gracias por su tiempo.
¿Qué porción de finalbuilder necesito? Parece que hay cierta superposición con el constructor final y la teamcity. El servidor de Finalbuilder parece ser un servidor de CI, así que supongo que no lo necesito. FinalBuilder parece ser un servidor de compilación, pero creo que TeamCity también es un servidor de compilación ... Y Automise parece ser una herramienta de automatización visual de Windows, como algún tipo de plataforma de desarrollo para aplicaciones de winforms ...
_I también no veo soporte para el constructor final en The Team City Supported Apps Diagram: _
Creo que el siguiente enlace contiene un conjunto bastante exhaustivo de información sobre este tema: http://martinfowler.com/articles/continuousIntegration.html – Tomas