Cucumber-js: ¿Qué pasó con el parámetro "cucumberOpts"? ¿Eso ya no es compatible?

Creado en 6 jun. 2017  ·  5Comentarios  ·  Fuente: cucumber/cucumber-js

Este número es una continuación de este https://github.com/angular/protractor/issues/4311 . Donde estoy discutiendo los cambios en la sintaxis sobre cómo usar transportador para ejecutar scripts de Cucumberjs.

Como lo solicitó @wswebcreation https://github.com/wswebcreation , cerré ese otro problema y abrí uno nuevo aquí.

Entonces, mi último comentario fue este ...

El último registro que tengo de una ejecución exitosa fue el 12 de mayo de 2017, 14:03. Precisamente la fecha en su documento.

Su ejemplo sobre etiquetas es muy simplista ... ¿cómo debo pedir 3 etiquetas, dos que deben ejecutarse y una que se ignora? Antes del 12 de mayo, esto solía funcionar bien, pero ahora no:

protractor ./FM_IntTest_UI_conf.js --disableChecks [email protected] --params.login.passw=mypassword --cucumberOpts.tags ~<strong i="13">@ignore</strong> --cucumberOpts.tags <strong i="14">@smoke</strong>,@sprint

Su documento dice que ahora debería ser así, pero no funciona, devuelve el mismo mensaje de error que envié con el "ticket".

protractor ./FM_IntTest_UI_conf.js --disableChecks [email protected] --params.login.passw=mypassword --cucumberOpts.tags '<strong i="18">@smoke</strong> or <strong i="19">@rt</strong>' --cucumberOpts.tags 'not <strong i="20">@ignore</strong>'

Error: Error: más de un archivo de configuración especificado
en C: \ Users \ echavez \ AppData \ Roaming \ npm \ node_modules \ transportador \ built \ cli.js: 155: 15
en C: \ Users \ echavez \ AppData \ Roaming \ npm \ node_modules \ transportador \ node_modules \ optimist \ index.js: 307: 21
en Array.forEach (nativo)
en parseArgs (C: \ Users \ echavez \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ optimist \ index.js: 305: 16)
en Object.Argv.self.parse (C: \ Users \ echavez \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ optimist \ index.js: 140: 16)
en Object. (C: \ Users \ echavez \ AppData \ Roaming \ npm \ node_modules \ transportador \ built \ cli.js: 158: 21)
en Module._compile (module.js: 571: 32)
en Object.Module._extensions..js (module.js: 580: 10)
en Module.load (module.js: 488: 32)
en tryModuleLoad (module.js: 447: 12)

Puedo ver en el documento Cucumber que también cambió la sintaxis de codificación para la definición de paso. ¿Por qué hacerlo más complicado ahora? Porque con la nueva sintaxis, debo agrupar los pasos por escenarios. ¿Pero hay algunos pasos que se repiten en varios escenarios, por lo que se repite el código en cada escenario? Terminaré con redundancias en mi código. ¿Por qué?

Aquí hay un fragmento de lo que tengo AHORA en mi archivo test.spec.js:

this.Given('I am testing my Widget Application', function (callback) {
    edirp.edirejectwidgetlink.click().then(function(){ 
        callback();
    }).catch(function(reason) {
        console.log('ERROR: Widget button not found');
        callback(reason);
    });
});

this.When('There are records in the Widget List', function() {
    edirp.edigetrow.count().then(function(cnt){
        if(cnt>0){
            return recordsFound = cnt;
        }else{
            return recordsFound = 0;
        }
    });
});


this.Then('Header name of the Widget List is '(.+)'', function(header, callback) {
    expect(po.headertext.getText()).to.eventually.equal(header).then(function(){ 
        callback();
    }).catch(function(reason) {
        console.log('Warning: Incorrect Text.');
        callback(reason);
    });
});

Aquí hay un fragmento de lo que se propone como una "actualización" ... para mí es un DOWNGRADE:

var seleniumWebdriver = require('selenium-webdriver');
var {defineSupportCode} = require('cucumber');

defineSupportCode(function({Given, When, Then}) {
  Given('I am testing my Widget Application', function (callback) {
    edirp.edirejectwidgetlink.click().then(function(){ 
        callback();
    }).catch(function(reason) {
        console.log('ERROR: Widget button not found');
        callback(reason);
    });

  When('There are records in the Widget List', function() {
    edirp.edigetrow.count().then(function(cnt){
        if(cnt>0){
            return recordsFound = cnt;
        }else{
            return recordsFound = 0;
        }
    });
  Then('Header name of the Widget List is '(.+)'', function(header, callback) {
    expect(po.headertext.getText()).to.eventually.equal(header).then(function(){ 
        callback();
    }).catch(function(reason) {
        console.log('Warning: Incorrect Text.');
        callback(reason);
    });
});

Si el escenario tiene varios Given, When, Then ... ¿Es necesario enumerarlos aquí, así ?:
defineSupportCode (function ({Dado, Y, Y, Cuando, Y, Y, Entonces, Y, Y, Y}) {

Si eso es cierto ... Entonces, ahora, si quiero usar nuevamente el paso "Cuando hay registros en el widget de rechazos EDI" en otro escenario en mi función, ¿necesito codificar toda la función nuevamente?

Todo lo que necesito son respuestas con argumentos. No te lo tomes como algo personal.

Todos 5 comentarios

Si el escenario tiene varios Given, When, Then ... ¿Es necesario enumerarlos aquí, así ?:
defineSupportCode (function ({Dado, Y, Y, Cuando, Y, Y, Entonces, Y, Y, Y}) {

No. Given , When y Then son funciones que puede llamar varias veces (similar a this.Given , etc. de 1.x). And no es una función. Puede ver todas las funciones pasadas por defineSupportCode en la Referencia de API que está vinculada desde README.md

Puedo ver en el documento Cucumber que también cambió la sintaxis de codificación para la definición de paso.

Ver https://github.com/cucumber/cucumber-js/issues/679

¿Por qué hacerlo más complicado ahora? Porque con la nueva sintaxis, debo agrupar los pasos por escenarios.

Eso no es verdad

¡Gracias, lo comprobaré!

¡@charlierudolph Tnx por explicar!

Este hilo se ha bloqueado automáticamente ya que no ha habido ninguna actividad reciente después de que se cerró. Abra un nuevo problema para errores relacionados.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

jfstephe picture jfstephe  ·  4Comentarios

dblooman picture dblooman  ·  7Comentarios

kozhevnikov picture kozhevnikov  ·  6Comentarios

jan-molak picture jan-molak  ·  4Comentarios

bmsoko picture bmsoko  ·  7Comentarios