Project

liri

0.0
The project is in a healthy, maintained state
Test distributor executor
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
 Project Readme

Liri

Sistema que ejecuta pruebas unitarias de manera distribuida dentro de una red de computadoras a fin de aumentar la velocidad de ejecución.

El sistema Liri está compuesto por dos aplicaciones que están empaquetadas dentro de la gema Liri.

Esta gema es compatible con proyectos Ruby o Ruby on Rails que utilicen la gema RSpec.

Este es un repositorio que contiene la documentación y el código fuente de un proyecto desarrollado en el contexto de un Trabajo Final de Grado para la carrera Ingeniería Informática de la Universidad Nacional de Itapúa con sede en Encarnación - Itapúa - Paraguay.

Se recomienda tener las debidas precauciones al momento de utilizar los datos de este proyecto ya que todavía no es una versión final estable y no es seguro que algún día llegue a ser estable.

Instalación

Agregar la siguiente línea al Gemfile de su aplicación:

gem 'liri'

y ejecute:

$ bundle install

o instale la gema:

$ gem install liri

Uso

Esta gema esta compuesta por dos aplicaciones: una Aplicación Coordinadora y una Aplicación Agente.

La Aplicación Coordinadora, coordina la ejecución de las pruebas conectandose con las Aplicaciones Agente.

La Aplicación Coordinadora se ejecuta desde la raiz de un proyecto Ruby o Ruby on Rails a través del siguiente comando:

$ liri m

La Aplicación Agente se encarga de ejecutar las pruebas y enviar los resultados a la Aplicación Coordinadora. Se pueden tener tantas Aplicaciones Agente como se desee en un red de computadoras.

La Aplicación Coordinadora se puede ejecutar de manera manual cada vez que se desee a través del siguiente comando:

$ liri a

o bien, se puede instalar como un servicio del sistema, a través del archivo comprimido liriagent.zip que se encuentra en la carpeta /installers dentro de este repositorio. Este instalador sólo funciona en sistemas operativos Linux.

Una vez descargado el instalador, se debe descomprimir e ingresar desde linea de comandos a la carpeta /bin de la carpeta descomprimida y ejecutar el comando:

$ ./install.sh

Para que funcione el Sistema Liri, las computadoras en donde esten ejecutandose la Aplicación Coordinadora y la Aplicación Agente, deben tener configuradas todos los requisitos de la aplicación a probar, por ejemplo, si se va a ejecutar las pruebas unitarias de una gema X, si esta gema X requiere una versión específica de Ruby o una conexión a base de datos, este tipo de cosas deben configurarse de manera manual.

Desarrollo

La rama master siempre debe ser estable. Se debe crear un release cada vez que se llega a una versión estable de algún agregado nuevo. Agregar fixes y mejoras en ramas.

Pruebas Unitarias

Para ejecutar las pruebas unitarias del proyecto, ejecute el comando:

$ rake spec

Consultar las siguientes fuentes para la implementación de pruebas unitarias:

Compilación

Para compilar la gema:

$ rake build

Para instalar la gema:

$ rake install

Para publicar la gema en RubyGems.org

$ rake publish

Antes de publicar la gema se debe actualizar la versión de la misma en el archivo /lib/liri.rb

Para realizar un proceso completo:

$ rake

Este comando compila e instala la gema, además crea una nueva versión del instalador agente dentro de la carpeta /installers

Detalles de estructura e implementación

La configuración de las tareas para manejar la gema están dentro del archivo Rakefile.

La configuración de los comandos disponibles de la gema están dentro del archivo /exe/liri.

Las clases main o clases principales están en los archivos lib/manager/manager.rb y lib/agent/agent.rb

Buenas Prácticas

Rubocop

Rubocop es un analizador de código estáticos para user las mejores prácticas al escribir el código. Para usar Rubocop, ejecutar el siguiente comando en la terminal:

$ rubocop

Más información sobre Rubocop en: https://danielcastanera.com/anadir-rubocop-proyecto-rails/

Documentación

Para la documentación se usa la gema Yard según las pautas indicadas en:

Para generar la documentación ejecutar el comando:

$ yard

El comando anterior crea una carpeta /doc del cual se tiene que abrir el archivo index.html en un navegador

Una alternativa a yard es la gema Rdoc que al parecer también es utilizada por Yard:

Para generar la documentación ejecutar comando:

$ rdoc

El comando anterior crea una carpeta /doc del cual se tiene que abrir el archivo index.html en un navegador

Manejo de dependencias

Todas las gemas agregadas al Gemfile deben tener el siguiente formato para la versión:

$ gem 'rubyzip', '~>2.2'    

Con el formato especificado, la versión de rubyzip instalada será igual o mayor a 2.2.0 y menor a 3.0.0, porque cuando el primer dígito se cambia de 2 a 3, los cambios entre versiones son incompatibles. Más información en: https://blog.makeitreal.camp/manejo-de-dependencias-en-ruby-con-bundler/

Contribución

Esta gema no acepta contribuciones porque corresponde a un Trabajo Final de Grado Universitario.

Licencia

The gem is available as open source under the terms of the MIT License.

No nos hacemos responsables de los perjuicios que pueda causar el uso de la información de las documentaciones compartidas y del código fuente compartido en este repositorio.

Cualquier uso que se le dé a a los datos contenidos de este repositorio debe ir con la correspondiente referencia hacia este repositorio.

Código de conducta

Everyone interacting in the Liri project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.