Menu iconMenu icon
Python y SQL Biblia

Capítulo 11: Pruebas en Python

11.4 Doctest

Doctest es un módulo de Python que proporciona una forma única de probar tu programa. Te anima a escribir documentación que también funciona como pruebas. Básicamente, creas ejemplos de código en tu documentación, y Doctest ejecutará esos ejemplos como pruebas.

Este enfoque puede ser muy útil porque te anima a escribir una documentación completa, y asegura que tu documentación esté siempre actualizada con tu código. Además, Doctest proporciona una forma fácil de probar piezas individuales de código sin la necesidad de una suite de pruebas separada, lo que puede ser muy útil para proyectos más pequeños. En general, usar Doctest puede ser una excelente manera de mejorar la calidad y confiabilidad de tu código.

Aquí tienes un ejemplo muy simple:

def add(a, b):
    """
    This is a simple function that adds two numbers.

    >>> add(2, 2)
    4
    >>> add(1, -1)
    0
    """
    return a + b

Puedes ejecutar la prueba con python -m doctest -v tu_modulo.py.

Cada uno de estos marcos de pruebas tiene sus fortalezas y debilidades, y cuál usar a menudo depende de las necesidades específicas de tu proyecto. Pero todos son herramientas poderosas que te ayudarán a escribir código Python confiable y robusto.

Ahora, hay un tema adicional que puede ser bastante valioso en una sección sobre pruebas, y es el concepto de cobertura de pruebas.

Las pruebas son una parte esencial del desarrollo de aplicaciones robustas, ¿pero cómo sabes si has escrito suficientes pruebas? Aquí es donde entra en juego el concepto de cobertura de pruebas. La cobertura de código es una medida de cuántas líneas/bloques de tu código se ejecutan mientras se ejecutan las pruebas automatizadas. Una herramienta de cobertura de código puede ser un complemento muy útil para tu conjunto de pruebas, ya que puede decirte cuánto de tu código está siendo probado.

Python tiene una útil herramienta para esto llamada coverage.py. Es una herramienta independiente para medir la cobertura de código y se puede utilizar en conjunto con cualquier marco de pruebas. Aquí tienes un ejemplo simple de cómo funciona:

  1. Primero, instala el paquete usando pip:
pip install coverage
  1. Luego puedes ejecutar tus pruebas a través de la cobertura:
coverage run -m unittest discover
  1. Y finalmente, puedes informar sobre la cobertura con:
coverage report -m

Esto mostrará un informe en la línea de comandos que te muestra la cobertura de cada archivo en tu proyecto. Las líneas que no se ejecutaron se muestran junto a su número de línea.

Usar una herramienta como coverage.py te puede dar una imagen más clara de qué tan completas son tus pruebas y puede ayudarte a identificar áreas de tu código que podrían necesitar más pruebas. Sin embargo, ten en cuenta que una cobertura de pruebas del 100% no necesariamente significa que tu código esté 100% libre de errores. Simplemente significa que todas las líneas de tu código se ejecutan durante las pruebas. Todavía es posible tener errores lógicos, incluso con una cobertura de pruebas completa.

11.4 Doctest

Doctest es un módulo de Python que proporciona una forma única de probar tu programa. Te anima a escribir documentación que también funciona como pruebas. Básicamente, creas ejemplos de código en tu documentación, y Doctest ejecutará esos ejemplos como pruebas.

Este enfoque puede ser muy útil porque te anima a escribir una documentación completa, y asegura que tu documentación esté siempre actualizada con tu código. Además, Doctest proporciona una forma fácil de probar piezas individuales de código sin la necesidad de una suite de pruebas separada, lo que puede ser muy útil para proyectos más pequeños. En general, usar Doctest puede ser una excelente manera de mejorar la calidad y confiabilidad de tu código.

Aquí tienes un ejemplo muy simple:

def add(a, b):
    """
    This is a simple function that adds two numbers.

    >>> add(2, 2)
    4
    >>> add(1, -1)
    0
    """
    return a + b

Puedes ejecutar la prueba con python -m doctest -v tu_modulo.py.

Cada uno de estos marcos de pruebas tiene sus fortalezas y debilidades, y cuál usar a menudo depende de las necesidades específicas de tu proyecto. Pero todos son herramientas poderosas que te ayudarán a escribir código Python confiable y robusto.

Ahora, hay un tema adicional que puede ser bastante valioso en una sección sobre pruebas, y es el concepto de cobertura de pruebas.

Las pruebas son una parte esencial del desarrollo de aplicaciones robustas, ¿pero cómo sabes si has escrito suficientes pruebas? Aquí es donde entra en juego el concepto de cobertura de pruebas. La cobertura de código es una medida de cuántas líneas/bloques de tu código se ejecutan mientras se ejecutan las pruebas automatizadas. Una herramienta de cobertura de código puede ser un complemento muy útil para tu conjunto de pruebas, ya que puede decirte cuánto de tu código está siendo probado.

Python tiene una útil herramienta para esto llamada coverage.py. Es una herramienta independiente para medir la cobertura de código y se puede utilizar en conjunto con cualquier marco de pruebas. Aquí tienes un ejemplo simple de cómo funciona:

  1. Primero, instala el paquete usando pip:
pip install coverage
  1. Luego puedes ejecutar tus pruebas a través de la cobertura:
coverage run -m unittest discover
  1. Y finalmente, puedes informar sobre la cobertura con:
coverage report -m

Esto mostrará un informe en la línea de comandos que te muestra la cobertura de cada archivo en tu proyecto. Las líneas que no se ejecutaron se muestran junto a su número de línea.

Usar una herramienta como coverage.py te puede dar una imagen más clara de qué tan completas son tus pruebas y puede ayudarte a identificar áreas de tu código que podrían necesitar más pruebas. Sin embargo, ten en cuenta que una cobertura de pruebas del 100% no necesariamente significa que tu código esté 100% libre de errores. Simplemente significa que todas las líneas de tu código se ejecutan durante las pruebas. Todavía es posible tener errores lógicos, incluso con una cobertura de pruebas completa.

11.4 Doctest

Doctest es un módulo de Python que proporciona una forma única de probar tu programa. Te anima a escribir documentación que también funciona como pruebas. Básicamente, creas ejemplos de código en tu documentación, y Doctest ejecutará esos ejemplos como pruebas.

Este enfoque puede ser muy útil porque te anima a escribir una documentación completa, y asegura que tu documentación esté siempre actualizada con tu código. Además, Doctest proporciona una forma fácil de probar piezas individuales de código sin la necesidad de una suite de pruebas separada, lo que puede ser muy útil para proyectos más pequeños. En general, usar Doctest puede ser una excelente manera de mejorar la calidad y confiabilidad de tu código.

Aquí tienes un ejemplo muy simple:

def add(a, b):
    """
    This is a simple function that adds two numbers.

    >>> add(2, 2)
    4
    >>> add(1, -1)
    0
    """
    return a + b

Puedes ejecutar la prueba con python -m doctest -v tu_modulo.py.

Cada uno de estos marcos de pruebas tiene sus fortalezas y debilidades, y cuál usar a menudo depende de las necesidades específicas de tu proyecto. Pero todos son herramientas poderosas que te ayudarán a escribir código Python confiable y robusto.

Ahora, hay un tema adicional que puede ser bastante valioso en una sección sobre pruebas, y es el concepto de cobertura de pruebas.

Las pruebas son una parte esencial del desarrollo de aplicaciones robustas, ¿pero cómo sabes si has escrito suficientes pruebas? Aquí es donde entra en juego el concepto de cobertura de pruebas. La cobertura de código es una medida de cuántas líneas/bloques de tu código se ejecutan mientras se ejecutan las pruebas automatizadas. Una herramienta de cobertura de código puede ser un complemento muy útil para tu conjunto de pruebas, ya que puede decirte cuánto de tu código está siendo probado.

Python tiene una útil herramienta para esto llamada coverage.py. Es una herramienta independiente para medir la cobertura de código y se puede utilizar en conjunto con cualquier marco de pruebas. Aquí tienes un ejemplo simple de cómo funciona:

  1. Primero, instala el paquete usando pip:
pip install coverage
  1. Luego puedes ejecutar tus pruebas a través de la cobertura:
coverage run -m unittest discover
  1. Y finalmente, puedes informar sobre la cobertura con:
coverage report -m

Esto mostrará un informe en la línea de comandos que te muestra la cobertura de cada archivo en tu proyecto. Las líneas que no se ejecutaron se muestran junto a su número de línea.

Usar una herramienta como coverage.py te puede dar una imagen más clara de qué tan completas son tus pruebas y puede ayudarte a identificar áreas de tu código que podrían necesitar más pruebas. Sin embargo, ten en cuenta que una cobertura de pruebas del 100% no necesariamente significa que tu código esté 100% libre de errores. Simplemente significa que todas las líneas de tu código se ejecutan durante las pruebas. Todavía es posible tener errores lógicos, incluso con una cobertura de pruebas completa.

11.4 Doctest

Doctest es un módulo de Python que proporciona una forma única de probar tu programa. Te anima a escribir documentación que también funciona como pruebas. Básicamente, creas ejemplos de código en tu documentación, y Doctest ejecutará esos ejemplos como pruebas.

Este enfoque puede ser muy útil porque te anima a escribir una documentación completa, y asegura que tu documentación esté siempre actualizada con tu código. Además, Doctest proporciona una forma fácil de probar piezas individuales de código sin la necesidad de una suite de pruebas separada, lo que puede ser muy útil para proyectos más pequeños. En general, usar Doctest puede ser una excelente manera de mejorar la calidad y confiabilidad de tu código.

Aquí tienes un ejemplo muy simple:

def add(a, b):
    """
    This is a simple function that adds two numbers.

    >>> add(2, 2)
    4
    >>> add(1, -1)
    0
    """
    return a + b

Puedes ejecutar la prueba con python -m doctest -v tu_modulo.py.

Cada uno de estos marcos de pruebas tiene sus fortalezas y debilidades, y cuál usar a menudo depende de las necesidades específicas de tu proyecto. Pero todos son herramientas poderosas que te ayudarán a escribir código Python confiable y robusto.

Ahora, hay un tema adicional que puede ser bastante valioso en una sección sobre pruebas, y es el concepto de cobertura de pruebas.

Las pruebas son una parte esencial del desarrollo de aplicaciones robustas, ¿pero cómo sabes si has escrito suficientes pruebas? Aquí es donde entra en juego el concepto de cobertura de pruebas. La cobertura de código es una medida de cuántas líneas/bloques de tu código se ejecutan mientras se ejecutan las pruebas automatizadas. Una herramienta de cobertura de código puede ser un complemento muy útil para tu conjunto de pruebas, ya que puede decirte cuánto de tu código está siendo probado.

Python tiene una útil herramienta para esto llamada coverage.py. Es una herramienta independiente para medir la cobertura de código y se puede utilizar en conjunto con cualquier marco de pruebas. Aquí tienes un ejemplo simple de cómo funciona:

  1. Primero, instala el paquete usando pip:
pip install coverage
  1. Luego puedes ejecutar tus pruebas a través de la cobertura:
coverage run -m unittest discover
  1. Y finalmente, puedes informar sobre la cobertura con:
coverage report -m

Esto mostrará un informe en la línea de comandos que te muestra la cobertura de cada archivo en tu proyecto. Las líneas que no se ejecutaron se muestran junto a su número de línea.

Usar una herramienta como coverage.py te puede dar una imagen más clara de qué tan completas son tus pruebas y puede ayudarte a identificar áreas de tu código que podrían necesitar más pruebas. Sin embargo, ten en cuenta que una cobertura de pruebas del 100% no necesariamente significa que tu código esté 100% libre de errores. Simplemente significa que todas las líneas de tu código se ejecutan durante las pruebas. Todavía es posible tener errores lógicos, incluso con una cobertura de pruebas completa.