Completé mi primer proyecto adecuado en Python y ahora mi tarea es escribir pruebas para ello.
Como esta es la primera vez que hago un proyecto, esta es la primera vez que escribiría pruebas para él.
La pregunta es, ¿cómo empiezo? No tengo la mínima idea. ¿Alguien puede señalarme alguna documentación / tutorial / enlace / libro que pueda usar para comenzar a escribir pruebas (y supongo que las pruebas unitarias en particular)
Cualquier consejo será bienvenido sobre este tema.
python
unit-testing
testing
usuario225312
fuente
fuente
Respuestas:
Si eres nuevo en el uso de pruebas unitarias, el enfoque más simple para aprender es a menudo el mejor. Sobre esa base, recomiendo usar en
py.test
lugar delunittest
módulo predeterminado .Considere estos dos ejemplos, que hacen lo mismo:
Ejemplo 1 (prueba de unidad):
Ejemplo 2 (pytest):
Suponiendo que ambos archivos tienen nombre
test_unittesting.py
, ¿cómo ejecutamos las pruebas?Ejemplo 1 (prueba de unidad):
Ejemplo 2 (pytest):
fuente
unit-test
todavía se incluye en la biblioteca estándar, sipy.test
ynose
proporciona la misma funcionalidad con una interfaz mucho más simple? ¿Es sólo para proporcionar compatibilidad con versiones anteriores, o nounittest
tener algunas ventajas quepy.test
ynosetest
no puede proporcionar?unittest
paquete estándar sigue siendo lo suficientemente bueno. Es estándar, lo que significa que está garantizado que funcionará bien. Finalmente, cualquiera que use su código no necesita instalar paquetes adicionales.El libro gratuito Python Dive Into Python tiene un capítulo sobre pruebas unitarias que puede resultarle útil.
Si sigue prácticas modernas, probablemente debería escribir las pruebas mientras escribe su proyecto, y no esperar hasta que su proyecto esté casi terminado.
Un poco tarde ahora, pero ahora lo sabes para la próxima vez. :)
fuente
En mi opinión, hay tres grandes marcos de prueba de Python que son buenos para ver.
unittest - el módulo viene de serie con todas las distribuciones python
nose - puede ejecutar pruebas unittest y tiene menos repetitivo.
pytest : también ejecuta pruebas unitarias, tiene menos repetitivo, mejores informes, muchas características adicionales geniales
Para obtener una buena comparación de todo esto, lea las introducciones de cada uno en http://pythontesting.net/start-here .
También hay artículos extendidos sobre accesorios, y más allí.
fuente
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 mismo. De esa manera, puede usarlos para probar a medida que avanza, y (en teoría) puede usarlos 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 :)
fuente
unittest
. Una vez que me familiarice con las cosas, lo usaré más para el desarrollo, así como para aumentar el número de casos de prueba para cada unidad.unittest viene con la biblioteca estándar, pero te recomendaría pruebas de nariz .
"la nariz extiende la prueba unitaria para facilitar las pruebas " .
También te recomendaría pylint
" analiza el código fuente de Python buscando errores y signos de mala calidad " .
fuente
Como otros ya respondieron, es tarde para escribir pruebas unitarias, pero no demasiado tarde. La pregunta es si su código es comprobable o no. De hecho, no es fácil poner a prueba el código existente, incluso hay un libro sobre esto: Trabajar eficazmente con código heredado (ver puntos clave o PDF precursor ).
Ahora escribir las pruebas unitarias o no es su decisión. Solo necesita ser consciente de que podría ser una tarea tediosa. Puede abordar esto para aprender las pruebas unitarias o considerar primero escribir pruebas de aceptación (de extremo a extremo) y comenzar a escribir pruebas unitarias cuando cambie el código o agregue una nueva característica al proyecto.
fuente
nosetests es una solución brillante para pruebas unitarias en python. Admite casos de prueba basados en unittest y doctests, y le ayuda a comenzar con un simple archivo de configuración.
fuente
nose
ynose2
están en modo de mantenimiento. Es mejor comenzarpy.test
ya que tiene mucho más soporte