Organización y Ejecución de Pruebas con Python Unit Test
Clase 9 de 20 • Curso de Unit Testing en Python
Resumen
Cuando estamos desarrollando en Python, ejecutar todas las pruebas desde la terminal es común en entornos de desarrollo. Sin embargo, en producción o integración continua, este enfoque puede no ser ideal, especialmente cuando solo queremos ejecutar pruebas específicas o tener un mejor control sobre cómo organizamos y ejecutamos estas pruebas. Python y su módulo Unit Test nos ofrecen herramientas como las suites de pruebas para modularizar y seleccionar qué pruebas ejecutar.
¿Cómo ejecutar pruebas específicas en Python?
Para ejecutar pruebas específicas, podemos usar el comando discover
del subcomando Unit Test. Este comando busca automáticamente todas las pruebas dentro de una carpeta y las agrupa en una suite. Sin embargo, este enfoque no es siempre ideal para entornos locales, donde podríamos querer ejecutar solo ciertas pruebas.
¿Qué son las suites de pruebas?
Una suite de pruebas es un grupo de pruebas que podemos ejecutar juntas. En proyectos pequeños, generalmente tenemos una sola suite, pero a medida que crece el proyecto, modularizar las pruebas por categorías o características es recomendable. Por ejemplo, podríamos tener una suite para pruebas de calculadora y otra para pruebas de banco.
¿Cómo crear y ejecutar una suite de pruebas manualmente?
-
Crear una suite manualmente:
- Creamos un archivo nuevo, por ejemplo,
test_suites.py
. - Importamos
UnitTest
y definimos una suite consuite = unittest.TestSuite()
. - Agregamos pruebas a la suite usando
suite.addTest()
.
- Creamos un archivo nuevo, por ejemplo,
-
Agregar pruebas específicas:
- Podemos importar pruebas existentes y añadirlas a la suite. Por ejemplo, si ya tenemos una prueba llamada
test_deposit
, podemos agregarla a la suite consuite.addTest(bankAccountTests('test_deposit'))
.
- Podemos importar pruebas existentes y añadirlas a la suite. Por ejemplo, si ya tenemos una prueba llamada
-
Ejecutar las suites con un runner:
- Para ejecutar una suite, necesitamos un runner. Python ofrece varios tipos de runners. Un ejemplo sería el
TextTestRunner
, que se usa comúnmente en la terminal. - El código básico para ejecutar la suite sería:
runner = unittest.TextTestRunner() runner.run(suite)
- Para ejecutar una suite, necesitamos un runner. Python ofrece varios tipos de runners. Un ejemplo sería el
¿Cómo configurar Visual Studio Code para ejecutar pruebas?
Visual Studio Code facilita la ejecución de pruebas con su interfaz gráfica. Podemos configurar un runner y seleccionar qué pruebas ejecutar directamente desde el editor.
-
Configurar las pruebas en Visual Studio Code:
- En la configuración, seleccionamos Unit Test como el framework de pruebas y especificamos la carpeta donde se encuentran las pruebas.
- Visual Studio Code lista automáticamente las pruebas, permitiéndonos ejecutarlas con un solo clic.
-
Ejecutar pruebas individuales:
- Al hacer clic en una prueba específica, podemos ver su resultado inmediatamente, ya sea que la prueba haya pasado, fallado o se haya omitido.
¿Cómo solucionar errores comunes al ejecutar pruebas?
Durante la ejecución de las pruebas, es común encontrarse con errores como “módulo no encontrado”. Estos errores se pueden solucionar asegurándonos de que las carpetas contienen archivos __init__.py
y configurando correctamente el PYTHONPATH
para que Python encuentre todos los módulos necesarios.
¿Cómo ejecutar pruebas desde la terminal?
Podemos ejecutar una prueba específica directamente desde la terminal usando la siguiente estructura de comando:
python -m unittest test_calculator.CalculatorTest.test_sum
Esto ejecuta únicamente la prueba test_sum
de la clase CalculatorTest
.