En mi lugar de trabajo, tenemos una solución de C# .net que contiene aproximadamente 50 proyectos y aproximadamente 2000 pruebas unitarias. Después de cambiar el código, es necesario que ejecutemos todas las pruebas en la solución antes de enviar nuestros cambios al servidor de compilación. Ejecutar todas las pruebas puede llevar entre 10 y 15 minutos. Estaba pensando - hey, tal vez podría haber algún proceso que analice todos los cambios de código que hice, y luego decida ejecutar solo los métodos de prueba relevantes. Si tal tipo de análisis es posible, entonces en lugar de ejecutar 2000 pruebas, la computadora solo ejecutará 15 o 100 pruebas, entonces estamos hablando de un muy buen aumento en la productividad y menos dolores de cabeza. ¿Alguien tiene alguna idea sobre cómo implementar esto o si dicho software está disponible?Prueba de unidad de dependencia de código
Respuesta
Nuestra C# Test Coverage Tool puede hacer esto.
incrementalmente instrumentos sólo los archivos que han cambiado desde la última ejecución cobertura de la prueba.
Se puede utilizar para rastrear la cobertura de prueba para cada prueba de unidad y qué archivos están involucrados. Cuando un archivo cambia, lo compara con la versión anterior; si un método involucrado en algunas pruebas unitarias cambia previamente, identifica esas pruebas unitarias. Tiene que organizar ese proceso para asociar las ejecuciones de prueba con los datos de cobertura, y volver a ejecutar las pruebas unitarias identificadas, pero tiene una pequeña cuestión de scripting. La razón para esto es permitir que la herramienta de cobertura de prueba funcione con marcos de prueba arbitrarios.
Puede hacerlo en el servidor de compilación para ahorrar tiempo. Lo que es más importante, puede proporcionarle a cada desarrollador esto, para que pueda ejecutar solo las pruebas necesarias para validar el código que cambia, antes de que él compruebe los cambios.
Es realmente difícil determinar qué depende de qué en un entorno de proyectos múltiples. Lo ideal sería:
- pruebas unitarias serían verdadera unidad pruebas, y 2.000 de ellos debería funcionar en tal vez 20 segundos.
- Sus pruebas de más larga duración se instalarán en una compilación continua en su servidor de compilación, por lo que aún recibiría una notificación bastante rápida de que se equivocó si se saltara algo, pero personalmente podría permitirse ser solo más selectivo al ejecutar solo las pruebas que cree que podría haber afectado con los cambios de código antes de comprometerse.
Visual Studio 2010 Premium y Ultimate tienen una herramienta de "Prueba de impacto" que hace exactamente eso.
En nuestro medio ambiente utilizamos NCrunch http://www.ncrunch.net/
Construye los proyectos y se ejecutan las pruebas de unidad en el fondo utilizando varios subprocesos. Le notifica las pruebas unitarias fallidas de una manera agradable.
NCrunch hace más o menos lo que necesita. Echar un vistazo.
- 1. Prueba de unidad código matemático
- 2. Dependencia Resolución de inyección y prueba de unidad
- 3. Unidad de prueba de código privado
- 4. Unidad y Prueba funcional Código de iPhone?
- 5. Código de prueba de unidad que llama a métodos estáticos
- 6. Dependencia de prueba de Gradle
- 7. Sockets de prueba de unidad
- 8. Prueba de unidad CacheManager
- 9. Código de respuesta de prueba de unidad MVC3
- 10. Prueba de unidad Código de Javascript Incrustado dentro de PHP
- 11. Ejemplos de prueba de unidad?
- 12. (Unidad) Prueba de ArrayAdapter
- 13. Unidad de prueba EJB
- 14. ¿Puede usted unidad de prueba de código ofuscado?
- 15. Código de prueba de unidad que obtiene la hora actual
- 16. Prueba de Unidad de Curado
- 17. unidad que prueba una unidad de trabajo
- 18. instaladores de prueba de unidad
- 19. Herencia de prueba de unidad
- 20. Python: unidad de prueba basada en el código del socket?
- 21. Unidad de prueba Código que llama a VirtualPathUtility.ToAbsolute
- 22. código Prueba de la unidad con dependencias externas impredecibles
- 23. A .NET Unidad de prueba sin un constructor sin parámetros, para facilitar la inyección de dependencia
- 24. . Prueba de unidad .NET - Mejores prácticas para ocultar costuras de prueba en el código de versión
- 25. Marco de prueba de Google - Dependencia entre casos de prueba
- 26. Prueba de la unidad y la inyección de dependencia con dependencias anidadas
- 27. Prueba de unidad post mortem
- 28. Messagebox y prueba de unidad
- 29. de prueba Unidad clases particulares
- 30. Prueba de unidad Descripción pregunta
+1 para separar las pruebas unitarias de las pruebas de integración. Ver http://stackoverflow.com/questions/61400/what-makes-a-good-unit-test – TrueWill