Pruebas de software 23-24

De Wiki de EGC
Revisión del 13:14 1 oct 2023 de Brgutierrez (discusión | contribuciones) (Página creada con «= Prerrequisitos = *Para no lidiar con problemas de compatibilidad entre la versión de Python, la de Django y la de nose [https://nose.readthedocs.io/en/latest/], vamos a...»)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

Prerrequisitos

  • Para no lidiar con problemas de compatibilidad entre la versión de Python, la de Django y la de nose [1], vamos a necesitar una nueva dependencia: pynose [2]. Se instala en el repositorio virtual mediante:
pip install pynose
  • Para que estos problemas no se propaguen en las siguientes prácticas, debemos añadir pynose al requirements.txt:
pynose==1.4.8
  • Cuando se ejecutan las pruebas, Django crea una base de datos para este único propósito y así no interferir con la base de datos que usamos en desarrollo/producción. Para poder crear esta base de datos, necesita permisos. Suponiendo que el usuario para la base de datos que creamos en la práctica anterior se llama decideuser, podemos otorgarle permisos haciendo:
sudo su - postgres
psql -c "ALTER USER decideuser CREATEDB"
  • Para las pruebas de interfaz con Selenium [3], necesitaremos Chrome y el web driver de Chrome:
sudo apt install chromium-browser chromium-chromedriver
  • Y, por último, para las pruebas de carga, necesitamos locust [4]:
pip install locust

Automatizando Pruebas

La estructura de Django, se divide principalmente en modelos, vistas y plantillas.

Django-arch.png

En esta práctica veremos como testar cada una de estas partes de Django, así como ejecutar pruebas de carga sobre el mismo. Para lanzar las pruebas, Django utiliza el framework de pruebas unittest [5], el cual está inspirado en JUnit [6].

Para ejecutar todas las pruebas disponibles en decide, utilizaremos la instrucción:

./manage.py test

Para ejecutar las pruebas de un único módulo, por ejemplo, voting, utilizaremos:

./manage.py test voting

Contenido de la práctica