¿Puedes revisar mi reescritura de pepino de Perl?
-
22-07-2019 - |
Pregunta
Hay un equipo trabajando en la prueba de aceptación de la aplicación X11 GUI en nuestra empresa, y crearon un marco de prueba de aceptación monstruoso que impulsa la GUI y los escenarios de ejecución.
El marco está escrito usando Perl 5, y los archivos de escenarios se parecen más a programas Perl muy complejos (miles de líneas con estilo de programación procesal) que a las pruebas de aceptación.
Recientemente aprendí Ruby's Cucumber, y en general he estado usando Ruby durante bastante tiempo. Pero desafortunadamente no puedo empujar a Ruby para reemplazar a Perl porque las personas que escriben todo esto no conocen a Ruby y es bastante seguro de que no querrán "esto". tipo de interrupción.
Entonces, para acercar a Ruby's Cucumber a su trabajo, lo reescribí usando Perl 5. Desafortunadamente, realmente no soy un programador de Perl, y me encantaría obtener una revisión del código y escuchar sugerencias de personas que conocen a Perl y Pepino.
Hola usuarios de Perl / Cucumber StackOverflow: ayúdenme a crear este "código abierto" ¡Intenta recrear Pepino para Perl! Me encantaría escuchar sus comentarios y aceptaré cualquier ayuda aceptable.
El código fuente mínimo está aquí:
http://github.com/kesor/p5-cucumber
Gracias por su atención.
Para aquellos que no están familiarizados con el pepino, tómese un momento para mirar esta pequeña página: http: //cukes.info/
Solución
¿Puedes revisar mi reescritura de Perl de Pepino?
Respuesta: Sí.
He leído el código de Github que publicaste. Se ve bastante bien.
Tengo curiosidad sobre el siguiente fragmento de Parser :: Parser.yp :: ERROR. ¿Por qué elegiste usar " y hacer {} " sobre " if () {} " ;? ¿Estilo? alcance otro?
exists $parser->YYData->{ERRMSG}
and do {
print $parser->YYData->{ERRMSG};
delete $parser->YYData->{ERRMSG};
return;
};
No he usado pepino y todavía estoy tratando de entender el modelo de uso. ¿Cómo haría alguien para verificar / ejecutar su ejemplo de calculadora?
Si planea lanzar su código a CPAN (y debería hacerlo), entonces querrá agrupar esta fuente de git en un tarball instalable. Deberá incluir una de las herramientas de instalación de módulos: ExtUtils :: MakeMaker, Module :: Build, etc. Recientemente comencé a usar Dist :: Zilla , y estoy muy contento con eso. Me superó la energía de activación de liberar mi primer módulo cpan.
Recorrido de 20 segundos de Dist :: Zilla:
- descargar e instalar Dist :: Zilla y sus requisitos (hay muchos, ya que es una herramienta solo para desarrolladores)
- crea un archivo dist.ini en la parte superior nivel de su paquete ('dzil new MyPackage')
- correr 'prueba dzil', 'construcción dzil' y 'dzil liberar ', para probar, (compilar y probar), (compilación, prueba y lanzamiento)
Vea el Dist :: Zilla :: Tutorial
Otros consejos
Puede obtener buena ayuda en Perlmonks . Ese sitio está orientado a este tipo de publicación, mientras que Stackoverflow se trata más de preguntas directas y respondibles.
Buena suerte, :)
Hay una implementación bastante más completa de Cucumber en Perl en la forma de Test :: BDD :: Cucumber .
¿ Test :: A8N cumple con sus requisitos?
Si no, hay muchas otras Prueba: : módulos en CPAN que pueden hacer lo que busca.