Pruebas#

Guía de pruebas para colaboradores de Construbot.

Ejecución de pruebas#

Suite de pruebas completa:

make test

Pruebas específicas:

# Specific file
pytest tests/test_models.py

# Specific test
pytest tests/test_models.py::test_contract_creation

# Tagged tests
make current  # Runs tests with @tag('current')

Con cobertura:

make test
open htmlcov/index.html

Pruebas de escritura#

Estructura de prueba:

from django.test import TestCase
from construbot.proyectos.models import Contrato

class ContratoTestCase(TestCase):
    def setUp(self):
        self.company = Company.objects.create(...)

    def test_contract_creation(self):
        contract = Contrato.objects.create(
            company=self.company,
            folio="C-001"
        )
        self.assertEqual(contract.folio, "C-001")

Usar fábricas:

from tests.factories import ContractFactory

contract = ContractFactory(company=self.company)

Mejores prácticas#

✅ Pruebe una cosa por prueba

✅ Utilice nombres de prueba descriptivos

✅ Pruebas de aislamiento (no depender de otras pruebas)

✅ Utilice accesorios para una configuración común

✅ Etiquete las pruebas de trabajo en progreso con @tag('current')

Cobertura de prueba#

Objetivo: >80% de cobertura

Consulta cobertura:

make test
coverage report

Ver también#