Si creo un conjunto de pruebas para un proyecto de desarrollo, ¿esas clases deben mantenerse bajo control de versión con el resto del código del proyecto?¿Deben mantenerse las clases de prueba unitarias bajo control de versión con el resto del código?
Respuesta
Sí, no hay ninguna razón para no ponerlos en control de fuente. ¿Qué pasa si las pruebas cambian? ¿Qué pasa si las interfaces cambian, necesitando que las pruebas cambien?
Absolutamente. Las clases de prueba deben mantenerse actualizadas con el código. Esto significa registrarlo y ejecutar las pruebas en integración continua.
Sí, deberían. Las personas que consulten la última versión deberían poder probar el código en su máquina. Esto ayudará a identificar las dependencias faltantes y también puede proporcionarles documentación no oficial sobre cómo funciona el código.
Sí.
Código de prueba es un código. Debe mantenerse, refactorizarse y versionarse. Es una parte de la fuente de su sistema.
Sí, todas las mismas razones por las que pone el código de producción en el control de fuente todavía se aplican a cualquier prueba de unidad que escriba.
Es el clásico quién, dónde y por qué preguntas:
- que cambiaron el código?
- ¿Cuándo lo cambiaron?
- ¿Para qué lo cambiaron?
Estas preguntas son tan pertinentes para el código de prueba como lo son para el código de producción. Debes poner tu código de prueba unitario en el repositorio.
Absolutamente, deben ser tratados como ciudadanos de primera clase de su código base. Necesitarán todo el amor y cuidado, es decir, el mantenimiento como lo hace cualquier pieza de código.
Sí, deberían. Debería verificar las pruebas y ejecutarlas cada vez que realice cambios en el código. Si los colocas en otro lugar, es mucho más problemático ejecutarlos.
¡Absolutamente! Las clases de prueba son código fuente y deben ser administradas como cualquier otro código fuente. Deberá modificarlos, realizar un seguimiento de las versiones y conocer el historial de mantenimiento.
También debe mantener los datos de prueba bajo control de fuente a menos que sea masivamente grande.
Sí. Por todas las otras razones mencionadas aquí, además del hecho de que a medida que cambia la funcionalidad, su conjunto de pruebas cambiará, y debería ser fácil obtener el conjunto de pruebas correcto para cualquier lanzamiento, rama, etc. y tener las pruebas no solo en control de versiones, pero el mismo repositorio que tu código es la forma de lograrlo.
Absolutamente. Es probable que descubra que a medida que cambia el código, es posible que las pruebas también tengan que cambiar, por lo que es probable que desee tener un registro de esos cambios, especialmente si las pruebas o el código dejan de funcionar de repente. ;-)
Además, las cajas de prueba de la unidad deben mantenerse lo más cerca posible del código real que están probando (la parte inferior del mismo archivo parece ser el estándar). Es tanto por conveniencia como por mantenimiento.
Para obtener más información sobre lo que hace una buena prueba de unidad, consulte this stackoverflow post.
Las pruebas unitarias deben estar vinculadas a una base de código en su repositorio.
Por nada más que si tiene que producir una versión de mantenimiento para una versión anterior, puede garantizar que, según la métrica de las pruebas unitarias, el código no es peor que antes (y con suerte ahora es mejor)
Sí, por todos los motivos anteriores, también si está utilizando un servidor de integración continua que está "viendo" su control de fuente puede hacer que ejecute las últimas pruebas de unidad en cada confirmación.
Esto significa que una compilación fallada resulta de la falla de las pruebas de la unidad y del código no compilado.
De hecho sí. ¿Cómo podría alguien pensar lo contrario?
Si utiliza ramas de código, intente que el código de prueba encaje naturalmente en la línea de código principal, de modo que cuando se bifurque, las versiones correctas de las pruebas también se ramifiquen.
- 1. ¿Deben los archivos .class estar bajo control de versión?
- 2. ¿Las pruebas unitarias deben escribirse antes de escribir el código?
- 3. xcodeproj bajo control de versión
- 4. ¿Qué poner bajo control de versión?
- 5. ¿Debería mantenerse la carpeta .idea bajo control de fuente?
- 6. ABAP Clases de prueba unitarias - Buenas referencias
- 7. Las pruebas unitarias deben ubicarse en el mismo paquete?
- 8. ¿Qué archivos en un proyecto Java Netbeans deben colocarse bajo control de versión?
- 9. Desarrollo de versión y control de prueba
- 10. ¿La mejor práctica para mantener el código fuente bajo control de versión con varias compañías?
- 11. ¿Pruebas unitarias en el código de versión de producción?
- 12. svn: ignorar 'archivo' no está bajo el control de versión
- 13. . Prueba de unidad .NET - Mejores prácticas para ocultar costuras de prueba en el código de versión
- 14. Archivos Gettext .po bajo el control de versión
- 15. ¿Utiliza el control de versión con código no jerárquico?
- 16. ¿Debo mantener mis archivos de proyecto bajo control de versión?
- 17. Administrar fuentes y binarios de terceros usados por código bajo el control de código fuente
- 18. ¿Cómo se deben escribir las notas de la versión?
- 19. ¿Cuáles son las mejores prácticas para scripts de bases de datos bajo control de código
- 20. Pruebas unitarias con -fno-access-control
- 21. ¿Garantiza la cobertura del código en las pruebas unitarias?
- 22. ¿Cómo maneja los archivos individuales del desarrollador bajo el control de la versión?
- 23. ¿Control de versión ágil?
- 24. ¿Hay un tamaño máximo en el que las páginas web deben mantenerse?
- 25. Excepto que los archivos se implementen con Capistrano mientras aún esté bajo control de versión con Git
- 26. Tamaño típico de pruebas unitarias en comparación con el código de prueba
- 27. ¿Cómo funciona el recolector de basura con las pruebas unitarias?
- 28. Las declaraciones parciales de no deben especificar diferentes clases base
- 29. Python ... clases de prueba?
- 30. ¿Cómo puedo obtener mi base de datos bajo control de versión con Perl?
Idealmente, cambia las pruebas para demostrar su cambio (y falla), luego realice el cambio a su código para pasar la prueba. Una vez que las pruebas vuelvan a pasar, revíselo todo al control de fuente. Es un desarrollo impulsado por pruebas. –