test - Escribiendo pruebas unitarias en Python: ¿Cómo comienzo?
unittest (7)
Como otros ya respondieron, es tarde para escribir pruebas de unidad, pero no demasiado tarde. La pregunta es si su código es verificable o no. De hecho, no es fácil poner a prueba el código existente, incluso hay un libro sobre esto: Trabajar de manera efectiva con el código heredado (consulte los puntos clave o el PDF precursor ).
Ahora escribiendo las pruebas unitarias o no es tu llamada. Solo debes tener en cuenta que podría ser una tarea tediosa. Puede abordar esto para aprender las pruebas de unidad o considerar escribir primero las pruebas de aceptación (de extremo a extremo) y comenzar a escribir pruebas de unidad cuando cambie el código o agregue una nueva función al proyecto.
Terminé mi primer proyecto adecuado en Python y ahora mi tarea es escribir pruebas para él.
Como esta es la primera vez que hago un proyecto, esta es la primera vez que escribo pruebas para él.
La pregunta es, ¿cómo empiezo? No tengo la mínima idea. ¿Puede alguien señalarme alguna documentación / tutorial / enlace / libro que pueda usar para comenzar con las pruebas de escritura (y supongo que las pruebas de unidad en particular)
Cualquier consejo será bienvenido en este tema.
El libro gratuito de Python Dive Into Python tiene un capítulo sobre pruebas de unidad que puede resultarle útil.
Si sigue las prácticas modernas, probablemente debería escribir las pruebas mientras escribe su proyecto, y no esperar hasta que el proyecto esté casi terminado.
Poco tarde ahora, pero ya sabes para la próxima vez. :)
Hay, en mi opinión, tres grandes marcos de prueba de Python que son buenos para revisar.
unittest - el módulo viene de serie con todas las distribuciones de python
nose - puede ejecutar pruebas de prueba de unidad, y tiene menos repetitivo.
pytest : también ejecuta pruebas de unittest, tiene menos repetitivo, mejores informes, muchas características extraordinarias
Para obtener una buena comparación de todos estos, lea las introducciones de cada uno en http://pythontesting.net/start-here .
También hay artículos extendidos sobre accesorios, y más allí.
Los documentos para unittest serían un buen lugar para comenzar.
Además, es un poco tarde ahora, pero en el futuro, considere escribir pruebas unitarias antes o durante el proyecto. De esa manera, puede usarlos para realizar pruebas a medida que avanza, y (en teoría) puede usarlas como pruebas de regresión, para verificar que los cambios en su código no hayan roto ningún código existente. Esto le daría el beneficio completo de escribir casos de prueba :)
Nosetests es una solución brillante para pruebas de unidad en python. Admite testcases y doctests basados en unittest, y le permite comenzar con un simple archivo de configuración.
Si eres nuevo en el uso de pruebas de unidad, el enfoque más simple para aprender es a menudo el mejor. Sobre esa base, recomiendo el uso de py.test
lugar del módulo predeterminado de unittest
.
Considera estos dos ejemplos, que hacen lo mismo:
Ejemplo 1 (prueba de unidad):
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 (pytest):
def test_starting_out():
assert 1 == 1
Suponiendo que ambos archivos se llaman test_unittesting.py
, ¿cómo ejecutamos las pruebas?
Ejemplo 1 (prueba de unidad):
cd /path/to/dir/
python test_unittesting.py
Ejemplo 2 (pytest):
cd /path/to/dir/
py.test