Cómo leer la salida de las pruebas en Python
Para entender la salida de las pruebas, primero es importante explicar cómo funcionan las pruebas en la plataforma.
⚙️La prueba de código en Python se realiza mediante el marco de trabajo Pytest y también se escribe en el lenguaje Python. La verificación del código se realiza automáticamente al hacer clic en el botón «Comprobar». En este punto, el programa que se está probando se carga en la memoria y se llama con diferentes parámetros, mientras que las pruebas se aseguran de que su comportamiento sea el esperado.
Luego, en la pestaña «OUTPUT», se puede ver el resultado de la verificación. Aquí es donde surgen dificultades al enfrentar errores, y la lectura de la salida de las pruebas se convierte en nuestra principal herramienta para depurar el código.
Tipos de errores
Nadie escribe código de manera perfecta, por lo tanto, tarde o temprano te enfrentarás a errores. Comprender el tipo de error te ayudará a entender la raíz del problema.
Condicionalmente, los errores que ocurren durante la ejecución del ejercicio se pueden dividir en dos tipos:
- Errores del intérprete: varios tipos de errores y excepciones integradas en Python.
- Errores de afirmación (AssertionError): errores causados por las pruebas. El resultado de la función no coincide con el resultado esperado.
Errores del intérprete
Los errores del intérprete también se pueden dividir en dos categorías:
⛔ Errores de sintaxis (SyntaxError)
Violaciones de la sintaxis y puntuación del lenguaje. Durante la ejecución, el intérprete de Python no puede entender cómo leer la expresión incorrecta y genera un error SyntaxError. Si omites dos puntos, el intérprete indicará el lugar donde se esperan.
⛔ Errores semánticos (excepciones)
No impiden que el programa se ejecute, pero el programa no funciona como se espera. En Python, hay una gran cantidad de excepciones, pero no es necesario conocerlas todas. A menudo, el significado del error está oculto en el nombre de la excepción generada. Por ejemplo, al referirse a una variable no declarada, se producirá la excepción NameError junto con una explicación de que la variable text
no está definida.
No temas a las excepciones. Es suficiente leer la descripción de la excepción y entenderás lo que el intérprete está solicitando. Incluso si no está claro a partir de la descripción, siempre puedes consultar la documentación, donde se describen los casos de aparición de diversas excepciones.
Es importante entender que estos errores no están relacionados con las pruebas y señalan un problema en el código.
AssertionError
Los errores de afirmación ocurren cuando el valor esperado no coincide con el resultado de la función.
Para entender cómo se ven las pruebas de los ejercicios, primero veamos las pruebas:
La función bajo prueba se llama con parámetros específicos, y el resultado de su trabajo se compara con un resultado esperado predefinido.
Sin embargo, si los valores no coinciden, se produce un AssertionError. Examina detenidamente la salida en la pestaña «OUTPUT» en caso de que las pruebas fallen:
- Con el signo
-
se indica el resultado esperado. - Con el signo
+
se indica el resultado de la función bajo prueba. - Con el signo
?
se indica el resultado de la comparación: las partes que solo aparecen en el resultado de la función se marcan con+
, y las partes que solo están en el resultado esperado se marcan con-
.
Luego, es importante reflexionar sobre qué está causando la discrepancia en los resultados y abordar la causa del mal funcionamiento de la función bajo prueba.
Depuración de código
A veces, a primera vista, es imposible entender la causa del comportamiento incorrecto de la función. En ese caso, la depuración viene al rescate: la posibilidad de echar un vistazo al proceso de ejecución del código. Hay varias formas, pero veremos la más simple y común: la impresión de depuración.
La impresión de depuración implica mostrar en la pantalla los valores de las variables, llamadas a funciones, mensajes de ejecución de bucles durante la ejecución del programa. Para esto, simplemente agrega una llamada a la función print()
con el valor de interés.
Después, basta con volver a ejecutar la comprobación de prueba para ver el resultado de nuestra impresión de depuración en la pestaña «OUTPUT»:
Con la ayuda de la impresión de depuración, es más fácil supervisar el proceso de ejecución del programa, lo que significa que es mucho más fácil identificar dónde se ha deslizado un error.
Sin Comentarios