Soy un programador en crecimiento que finalmente está poniendo en práctica las pruebas unitarias para una biblioteca que estoy almacenando en GitHub.
Se me ocurrió que podría incluir las suites de prueba en el repositorio, pero al mirar otros proyectos, la inclusión de pruebas parece impredecible.
¿Se considera esto una mala forma? ¿Es la idea de que los usuarios solo están interesados en el código de trabajo y de todos modos probarán en su propio marco?
version-control
unit-testing
Parisminton
fuente
fuente
Respuestas:
Definitivamente deberías poner tus pruebas en el repositorio. En mi opinión, las pruebas son parte del código y pueden ayudar inmensamente a otros a comprenderlo (si está bien escrito). Además, pueden ayudar a otros al cambiar o contribuir a su base de código. Las buenas pruebas pueden darle la confianza de que sus cambios no rompen nada sin darse cuenta.
Sin embargo, el código de prueba debe estar bien separado del código de producción. Maven, por ejemplo, logra esto colocando el código de producción y prueba en diferentes carpetas. La pregunta "es este archivo parte de la producción o del código de prueba" nunca debería surgir.
Yo personalmente no escribo pruebas unitarias para bibliotecas usadas en mi propio código. Espero que funcionen (al menos cuando uso una versión de lanzamiento, aunque obviamente pueden aparecer errores). Obtiene cierta cobertura de prueba en las pruebas de integración, pero eso no es suficiente.
fuente
Si no incluye las pruebas unitarias en el código fuente registrado, entonces:
En pocas palabras, consideraría que no incluir ninguna prueba unitaria escrita en el repositorio oficial de código fuente es algo muy malo.
fuente
Por supuesto, debe colocar pruebas unitarias en el repositorio, por varias razones:
fuente
Si hay alguna posibilidad de ejecutarlos en otra computadora, inclúyalos definitivamente. Deben construirse por separado, para que los usuarios no tengan que hacerlo, y pueden tener dependencias adicionales, pero definitivamente deben incluirse.
Sospecho firmemente que la mayoría de los proyectos que no incluyen pruebas en el repositorio simplemente no tienen ninguno.
Puede haber una razón para tener las pruebas como un módulo separado, para que pueda ejecutar fácilmente nuevas pruebas contra el código anterior. Sería útil para la biblioteca estable de API o las pruebas de recuadro negro a través de la línea de comandos; La utilidad para los lenguajes compilados donde las nuevas pruebas probablemente no se compilarán con código anterior es limitada.
fuente
Absolutamente. Los puntos de bonificación adicionales aquí están en la capacidad de rastrear que la versión X de un archivo fuente va con la versión Y de una prueba. En otras palabras, debe poder volver a una versión anterior y extraer las pruebas apropiadas diseñadas para esa versión (en caso de un cambio de API o algo así).
fuente
Acabo de terminar de leer "Desarrollo de aplicaciones Brownfield en .Net" , y esto proporciona algunos consejos excelentes sobre la estructura de una aplicación, incluido el control de origen y dónde / cómo / por qué incluir pruebas unitarias (particularmente en el área de Integración continua) . Si eres un desarrollador de .Net, lo recomendaría.
fuente