El objetivo de mi proyecto será registrar las alineaciones en un partido de baloncesto y los equipos que participan. Será utilizada para poder consultar los partidos y equipos. Además también podremos obtener los partidos jugados por un jugador y el número de veces que fue titular.
Puede obtener más información sobre las herramientas y lenguaje utilizados aquí
Para la instalación se tendrá que ejecutar el siguiente comando:
npm install
Nuestra herramienta de construcción será npm. La utilizamos para gestionar la descarga e instalación de las librerías necesarias para nuestro proyecto y la ejecución de los test.
{
"name": "alineacionbaloncesto",
"version": "1.0.0",
"description": "Proyecto para la asignatura IV",
"main": "app.js",
"scripts": {
"test": "jasmine test/*.js"
},
"repository": {
"type": "git",
"url": "git+https://github.com/jmplz14/AlineacionBaloncesto.git"
},
"author": "jmplz14",
"license": "GPL-3.0",
"bugs": {
"url": "https://github.com/jmplz14/AlineacionBaloncesto/issues"
},
"homepage": "https://github.com/jmplz14/AlineacionBaloncesto#readme",
"devDependencies": {
"jasmine": "^3.5.0",
"jsdoc": "^3.6.3"
},
"dependencies": {
"lodash": "^4.17.15"
}
}
Como se ve en el apartado de script, especificamos que ejecute los tests para todos los ficheros con extensión js que se encuentre en la carpeta test. Hemos añadido las dependencias para nuestra librería de de test(Jasmine) y para jsdoc que nos ayuda a documentar las clases.
La ejecución de los test se realizarán con el siguiente comando:
npm test
En nuestro caso tendremos los siguientes 10 tests:
- Comprueba que existe un equipo.
- Añadir correctamente un nuevo equipo.
- Comprueba que existe un partido.
- Añadir correctamente un nuevo partido.
- Existe un jugador en un equipo.
- Obtener correctamente los cambios de un partido.
- Obtener el número correcto de partidos como titular de un jugador.
- Obtener los partidos jugados por un jugador.
- Obtener la alineación titular del equipo local de un partido
- Obtener la alineación titular del equipo visitante de un partido.
Para ver la información de las clases utilizadas se puede consultar aquí.
Para la integración continua he utilizado Travis CI y Circle CI. En ambos servicios utilizaremos la cuenta de github para registrarnos.
Circle es un sistema basado en la nube y tiene un plan gratuito que nos permite usarlo sin problemas para esta práctica. Tiene una configuración muy sencilla mediante el fichero config.yml.
version: 2.1
jobs:
build:
docker:
- image: circleci/node:10.16.3
steps:
- checkout
- run:
name: Instalar dependencias
command: npm install
- run:
name: Correr test
command: npm test
En nuestro caso usaremos la imagen con la versión de node 10.16.3 y realizaremos la instalación y los test.
El apartado version nos especifica la versión que utilizaremos de Circle. En el apartado bulid especificamos la configuración que tendremos para llevar a cabo la ejecución de los test.
En docker especificaremos la imagen docker que queremos que ejecute nuestros test. En nuestro caso sera una imagen con la version de node js 10.16.3.
El apartado steps nos indicara los pasos necesarios para la ejecución de nuestros test. Checkout copia el código al directorio en el que trabajara Circle. Después hemos especificado dos ordenes que tiene que ejecutar, npm install para instalar todo lo necesario mediante Npm, que es nuestra herramienta de construcción y npm test para ejecutar los test que tenemos programados. El apartado Name de estos dos comandos es una forma de describir lo que esta realizando Circle para verlo claramente al ejecutarse.
Una de las principales ventajas de Circle sobre Travis es el tiempo de ejecución. En los tests realizados Circle me ha tardado unos 10 segundos mientras que Travis tardó sobre un minuto para ejecutar lo mismo que Circle.
Es de los mas utilizados y con una mayor cantidad de documentación para ayudarnos a la hora de la configuración. Tiene un plan gratuito para proyectos de código abierto y también esta basado en la nube.
En este caso el fichero de configuración es travis.yml
language: node_js
node_js:
- 9
- 10
- 11
- 12
script:
- npm test
El fichero es mas sencillo que en Circle. Se especifica en la primera linea que se usara node.js para el proyecto. En el apartado node_js especifico las versiónes para las que ejecutaremos nuestros test. En el apartado de script especifico el comando para ejecutar los test, por defecto Travis utiliza la orden npm test para ejecutarlos, mirando en el package.json la configuración que tenemos para los test. Por tanto este apartado no sería necesario especificarlo. La demás configuración de Travis la dejamos por defecto.