---
# System prepended metadata

title: Intro a PyTest.
tags: [' python', M6, ' programacio', DAM]

---

---
title: Intro a PyTest.
tags: DAM
---

<div style="width: 30%; margin-left: auto;">
    
![](https://hackmd.io/_uploads/HJiR4eGJT.png)    
    
</div>


<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Llicència de Creative Commons" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />Aquesta obra està subjecta a una llicència de <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Reconeixement-CompartirIgual 4.0 Internacional de Creative Commons</a>

# Intro a PyTest.
![images](https://hackmd.io/_uploads/rkCIS4836.png)

## Proves unitàries.
Una prova unitària és una técnica de prova de programari on s'avalua de manera individual cada component d'un programa de manera aïllada. L'objectiu principal de les proves unitàries és validar que cada peça de codi: cada funció, cada classe, etc, funciona com s'espera que ho faci. Aquestes proves es centren en verificar el correcte funcionament de parts específiques del codi de manera independent.

### Característiques de les proves unitàries:
* Aïllament: El resultat de cada prova no depèn d'altres parts del programa.
* Automatització: Estan dissenyades per a poder-se executar de manera automàtica.
* Repetitivitat: Han de donar els mateixos resultats de manera consistent.
* Rapidesa: Han de ser suficientment ràpides com per permetre una verificació continuada durant el desenvolupament.
* Independència: Les proves han de ser independents entre elles.


### Propòsit:
El propòsit principal de les proves unitàries és garantitzar que cada unitat de codi funcioni correctament abans d'integrar-se amb d'altres parts del sistema. Això contribueix a la identificació temprana d'errors, facilita el manteniment i augmenta la qualitat del codi.
Les proves unitàries són la base per a implementar la integració continua i el desplegament continuu (Continuous integration / Continuous deployment). 
El propósito principal de las pruebas unitarias es garantizar que cada unidad de código funcione correctamente antes de integrarse con otras partes del sistema. Esto contribuye a la identificación temprana de errores, facilita el mantenimiento del código y aumenta la confianza en la calidad del software. Las pruebas unitarias son una parte esencial de las buenas prácticas de desarrollo de software y son una base importante para implementar la prueba continua (Continuous Testing) y la integración continua (Continuous Integration).

### Exemples d'ús:
[Teniu un exemple d'ús en aquest llibre de Google Colab.](https://colab.research.google.com/drive/1FtY460HD1vklPChn2ArMeolv2HA2LEjA?usp=sharing)

### Informe de cobertura:
L'informe de cobertura és un resultat que mostra quines parts del teu codi font estan "cobertes" per les teves proves unitàries. En altres paraules, indica quines línies de codi han estat executades durant l'execució de les teves proves. Aquesta mesura es sol expressar com un percentatge del total de línies de codi.

Quan diem que una línia de codi està "coberta", significa que ha estat executada al menys una vegada durant l'execució de les proves. D'altra banda, si una línia no està coberta, podria indicar que aquesta part del codi no ha estat provada o no ha estat executada durant les proves.

L'informe de cobertura és útil per als desenvolupadors per diverses raons:

* **Identificar Zones No Testejades**: Permet identificar parts del teu codi que no han estat provades. Això pot indicar potencials punts de falla no detectats.
* **Mesurar la Qualitat de les Proves**: Un percentatge alt de cobertura no és garantia de proves de qualitat, però pot ser un indicador. Un informe de cobertura pot ajudar a assegurar-se que diferents camins del codi són exercitats durant les proves.
* **Millorar la Mantenibilitat**: Amb una bona cobertura, els desenvolupadors poden fer canvis al codi amb més confiança, sabent que si es trenca alguna cosa, les proves ho detectaran.

En resum, l'informe de cobertura és una eina important per avaluar la qualitat i la fiabilitat de les proves unitàries d'un projecte de programació.