Utilizo Ruby para escribir un código, lo pruebo con Cucumber y Rspec y controlo versiones con Git. Pero aquí hay algunas cosas que no me quedan claras. P.ej. archivos temporales, creados por pruebas. No quiero hacer un seguimiento de sus cambios con cada confirmación. Entonces, de qué manera debería usar para eso:

  1. Busque archivos temporales dentro de la carpeta del proyecto y use algunos trucos de Git para ignorar los cambios. gitignore no es útil, porque necesito que algunos archivos estén en el lugar, cuando se inician las pruebas.
  2. Busque archivos temporales en /tmp. Sin embargo, da algunos datos poco claros para el entorno de prueba.
  3. ¿Alguna otra forma de lidiar con eso?
1
Michael 31 ene. 2015 a las 18:57

3 respuestas

La mejor respuesta

Los archivos requeridos cuando comienzan las pruebas deben estar en control de código fuente. Idealmente, desea que los archivos temporales creados por las pruebas estén en un directorio para que pueda ignorar todo el directorio. Si eso no es posible, agregue cada archivo al archivo .gitignore. Realmente, fuera de los resultados de la prueba, sus especificaciones deberían limpiarse después de sí mismas, lo que debería incluir la eliminación de los archivos temporales creados durante la prueba.

4
Greg Burghardt 31 ene. 2015 a las 16:41

Ruby tiene instalaciones para crear archivos temporales y directorios y limpiar para ti, úsalo. Escogerá la ubicación correcta para los archivos temporales para el entorno actual, probablemente fuera de su repositorio, y nunca más tendrá que preocuparse por ellos. Si bien la regla general para las pruebas es no escribir archivos fuera de su directorio de origen, el uso de un directorio temporal global es aceptable y confiable.

De lo contrario, cree un directorio temporal en su proyecto (posiblemente dentro de su directorio de prueba) y coloque todos sus archivos temporales allí. Configure .gitignore para ignorar ese directorio. Esto tiene la leve ventaja de mantener sus artefactos de prueba completamente dentro de su directorio fuente, y puede encontrarlos más fácilmente para propósitos de depuración. Aún debe usar la clase Tempfile de Ruby para administrarlos, solo dígale que use su directorio temporal, para manejar la limpieza y para asegurarse de que sus nombres temporales sean únicos para permitir pruebas paralelas.

Recomendaría usar lo que sea que escupe Tempfile.new. Recordar configurar el directorio temporal de prueba especial es una parte móvil más que no necesita.

1
Schwern 31 ene. 2015 a las 19:04

gitignore no es útil, ...

gitignore debería ser útil aquí:

  • o puede limitar esos archivos temporales a una carpeta dedicada dentro del repositorio, y puede ignorar esa carpeta;
  • o puede identificar esos archivos temporales por su extensión o convención de nomenclatura, y puede ignorarlos por un patrón de nombre.
1
VonC 31 ene. 2015 a las 16:38