Git Product home page Git Product logo

alineacionbaloncesto's Introduction

Build Status CircleCI

AlineacionBaloncesto

Indice

  1. Descripción
  2. Instalación
  3. Herramienta de construcción
  4. Test
  5. Clase
  6. Integración continua

Descripción

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í

Instalación

Para la instalación se tendrá que ejecutar el siguiente comando:

npm install

Herramienta de construcción

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.

Test

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.

Clase

Para ver la información de las clases utilizadas se puede consultar aquí.

Integración Continua

Para la integración continua he utilizado Travis CI y Circle CI. En ambos servicios utilizaremos la cuenta de github para registrarnos.

Circle CI

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.

Travis CI

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.