View on GitHub

EvaluaUGR

Proyecto para la asignatura de Cloud Computing del Máster en Ingeniería Informática

Gestor de tareas. Ejecución de los tests

Como se indicó anteriormente en el apartado selección de herramientas, se ha escogido como gestor de tareas Task. En su momento otras alternativas a usar eran por ejemplo Tusk. Sin embargo, se optó por esta herramienta ya que presenta una actualización reciente así como gran cantidad de estrellas y colaboradores en GitHub. Además, en su documentación vemos que es una herramienta flexible que permite incluir resúmenes a las órdenes para saber qué hacen, dependencias entre tareas … Por ejemplo, si ejecutamos la orden task -l vemos las tres tareas incluidas actualmente en el archivo Taskfile junto con una pequeña descripción de cada una. Más concretamente, las tareas incluidas son:

Si quisiéramos ejecutar alguna de ellas solo tendríamos que escribir task nombre-tarea. Finalmente, la herramienta Task se puede instalar fácilmente mediante el script install-task.sh.

Biblioteca de aserciones

Del mismo modo que con el gestor de tareas, se decidió que usar Testify como biblioteca de aserciones. De este modo, se ha optado por un enfoque TDD. En este enlace aparecen una gran cantidad de bibliotecas el lenguaje escogido. A parte de Testify, encontramos otras como Ginkgo y Goblin que presentan el sistema Behaviour Driven Development o incluso la propia librería estándar de Go. Las razones para el uso de Testify en el proyecto son por una lado, su valoración en GitHub. Al igual que el gestor de tareas, presenta una actualización reciente y gran número de estrellas y contribuidores. Por otro lado, la manera de trabajar con ella es sencilla, las funciones para aserciones que presenta son adecuadas para el proyecto y se integra bien con la librería estándar del lenguaje. Por lo que respecta a la escritura de los tests, aparte de la propia documentación de la herramienta se ha usado este enlace.

Sistema de prueba de código

Como el lenguaje de desarrollo del proyecto es Go, se ha decidido usar el mecanismo estándar para ejecutar los tests en el mismo. Se ejecutan los tests escritos mediante go test que ya viene proporcionado en el paquete de pruebas propio del lenguaje. Con este mecanismo, podemos ejecutar todos los tests contenidos en archivos del tipo *_test.go. También se ha decidido usar este método ya que es posible obtener un porcentaje de cobertura de los tests o indicar archivos o funciones específicos que ejecutar entre otros.

Clases y tests

Se ha avanzado código en los siguientes archivos:

Y los archivos de test correspondientes son: