Comparación del marco Python BDD: Pros y contras

Hola a todos Ya este mes , el curso de Ingeniero de Python QA comienza en OTUS. En previsión del inicio de este curso, compartimos con usted la traducción de material interesante.



Casi todos los principales lenguajes de programación tienen marcos para las pruebas de BDD , y Python no es una excepción. Y de hecho, ¡tiene varios de ellos! Entonces, ¿cómo los compara y cuál es el mejor? Tratemos de resolverlo.


comportarse


Comportarse es uno de los frameworks de Python BDD más populares. A pesar de que oficialmente no forma parte del proyecto Cucumber , su funcionalidad es bastante similar a la del marco de Cucumber.


Fuentes:



Logotipo



Pros:


  • Totalmente compatible con el lenguaje Gherkin;
  • La funcionalidad del entorno y los accesorios facilitan la instalación y la extracción;
  • Hay integración con Django y Flask;
  • Popular entre los pitonistas BDD;
  • Buena documentación y manuales;
  • Hay soporte para PyCharm Professional Edition .

Contras:


  • No hay soporte para la ejecución paralela, esto requiere un marco de comportamiento paralelo separado;
  • comportarse es un marco independiente;
  • Compartir pasos entre archivos de características puede ser problemático.

pytest-bdd


pytest-bdd es un complemento de pytest que permite a los usuarios escribir pruebas como archivos de características de Gherkin en lugar de funciones de prueba. Dado que está integrado en pytest, puede funcionar con cualquier otro complemento de pytest, como pytest-html para crear hermosos informes y pytest-xdist para pruebas paralelas. También utiliza accesorios pytest para inyectar dependencias.


Fuentes:



Logotipo



Pros:


  • Totalmente compatible con pytest y sus complementos principales;
  • Puede disfrutar de todos los beneficios de la comunidad pytest;
  • Los accesorios son una excelente manera de administrar el contexto entre los pasos;
  • Las pruebas se pueden filtrar y ejecutar junto con otras pruebas de pytest;
  • Las definiciones de pasos y enlaces se pueden compartir fácilmente usando conftest.py;
  • Los datos tabulares se pueden procesar mejor para pruebas basadas en datos ;
  • Excelente documentación en línea y tutoriales;
  • Hay soporte para PyCharm Professional Edition .

Contras:


  • Los módulos de definición de pasos deben tener declaraciones explícitas para archivos de características (a través de "@scenario" o la función "escenarios");
  • El plan de escenario debe manejarse de manera diferente.

rábano


rábano es un marco BDD resaltado: agrega una nueva sintaxis al lenguaje Gherkin. Las características del lenguaje, como los bucles de script, los requisitos previos de script y las constantes hacen que el rábano de Gherkin sea más programático para los casos de prueba.


Fuentes:



Logotipo



Pros:


  • Las extensiones de lenguaje Gherkin permiten a los evaluadores escribir mejor las pruebas;
  • Sitio web, documentación y logotipo: todo está en su lugar;
  • Los archivos de características y las definiciones de pasos son muy claros.

Contras:


  • Es un marco independiente con un número limitado de extensiones;
  • Es posible que a los puristas de BDD no les guste la adición de la sintaxis de Gherkin.

lechuga


la lechuga es otro marco de Python BDD "vegetal" que se conoce desde hace varios años. Sin embargo, su sitio y código no han sido actualizados por mucho tiempo.


Fuentes:



Logotipo:



Pros:


  • Código simple
  • Verificado y bueno.

Contras:


  • No es tan rica funcionalidad como en otros marcos;
  • Parece que no tiene un apoyo activo y continuo.

refrescar


Freshen es uno de los primeros marcos para pruebas de BDD en Python. Era un complemento para la nariz . Sin embargo, la actualización y la nariz ya no son compatibles, y su página de documentación establece claramente el uso de otros marcos.


Recomendaciones


Ninguno de los marcos anteriores es perfecto, pero muchos de ellos tienen ventajas significativas. En general, recomendaría usar pytest-bdd, ya que tiene todas las ventajas de las fortalezas de pytest. Creo que pytest es uno de los mejores marcos para realizar pruebas en cualquier idioma debido a su concisión, accesorios, complementos y complementos. La encuesta de desarrolladores de Python 2018 reveló que pytest es el marco de prueba más popular para Python. A pesar de que pytest-bdd no se ve tan pulido como se comporta, creo que algunos TLC de la comunidad de código abierto pueden solucionarlo.
Y algunas recomendaciones más:


  • Use comportarse si necesita una experiencia de desarrollo confiable y limpia y una gran comunidad.
  • Use pytest-bdd si necesita integración con otros complementos que ya contienen un montón de pruebas de pytest, o si necesita ejecutar pruebas en paralelo.
  • Use rábano si desea más control de software sobre las pruebas en el nivel de Gherkin.
  • No use lechuga y refresque.

¿Cuál es su marco BDD favorito? ¡Por favor comparte en los comentarios!

Source: https://habr.com/ru/post/460046/


All Articles