478 votos

Escribir pruebas unitarias en Python: ¿Cómo empiezo?

He completado mi primer proyecto propiamente dicho en Python y ahora mi tarea es escribir pruebas para él.

Como es la primera vez que hago un proyecto, es la primera vez que escribo pruebas para él.

La pregunta es, cómo ¿Empiezo? No tengo ni idea. Puede alguien indicarme alguna documentación/tutorial/enlace/libro que pueda utilizar para empezar a escribir pruebas (y supongo que pruebas unitarias en particular)

Cualquier consejo será bienvenido sobre este tema.

161voto

Skilldrick Puntos 33002

Este es un tutorial para el desarrollo dirigido por pruebas en Python . Ahora, como dijo Justin, es mejor escribir tus pruebas antes o durante la codificación, y así es como este tutorial asume que estás trabajando, pero aún así creo que lo encontrarás útil.

Y aquí está la segunda parte .

78voto

Tim McNamara Puntos 6478

Si eres nuevo en el uso de unittests, el enfoque más simple para aprender es a menudo el mejor. Sobre esa base a lo largo de Recomiendo el uso de py.test en lugar de la opción por defecto unittest módulo.

Considere estos dos ejemplos, que hacen lo mismo:

Ejemplo 1:

import unittest

class LearningCase(unittest.TestCase):
    def test_starting_out(self):
        self.assertEqual(1, 1)

def main():
    unittest.main()

if __name__ == "__main__":
    main()

Ejemplo 2:

def test_starting_out():
    assert 1 == 1

Suponiendo que ambos archivos se llamen test_unittesting.py ¿Cómo se realizan las pruebas?

Ejemplo 1

$ cd /path/to/dir/
$ python test_unittesting.py

Ejemplo 2:

$ cd /path/to/dir/
$ py.test

68voto

Mark Byers Puntos 318575

El libro gratuito de Python Sumérjase en Python tiene un capítulo sobre pruebas unitarias que puede ser útil.

Si sigue las prácticas modernas, probablemente debería escribir las pruebas mientras está escribiendo su proyecto, y no esperar hasta que su proyecto esté casi terminado.

Un poco tarde, pero ya lo sabes para la próxima vez :)

32voto

Justin Ethier Puntos 57486

Los documentos de unittest sería un buen punto de partida.

También, es un poco tarde ahora, pero en el futuro por favor considere escribir pruebas unitarias antes o durante el propio proyecto. De esta manera, puedes usarlas para probar a medida que avanzas, y (en teoría) puedes usarlas como pruebas de regresión, para verificar que tus cambios de código no han roto ningún código existente. Esto le daría todo el beneficio de escribir casos de prueba :)

27voto

ssoler Puntos 923

unittest viene con la biblioteca estándar, pero te recomiendo que nosetests .

" nose extiende unittest para facilitar las pruebas. "

También te recomiendo pylint

" analiza el código fuente de Python en busca de errores y signos de mala calidad. "

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X