Cucumber-js: Qu'est-il arrivé au paramètre "cucumberOpts" ? Ce n'est plus supporté ?

Créé le 6 juin 2017  ·  5Commentaires  ·  Source: cucumber/cucumber-js

Ce problème est une continuation de ce https://github.com/angular/protractor/issues/4311 . Où je discute des changements de syntaxe sur la façon d'utiliser le rapporteur pour exécuter les scripts Cucumberjs.

Comme demandé par @wswebcreation https://github.com/wswebcreation , j'ai fermé cet autre problème et en ai ouvert un nouveau ici.

Donc, mon dernier commentaire était le suivant...

Le dernier record que j'ai d'une exécution réussie était le 12 mai 2017, 14:03. Précisément la date dans votre document.

Votre exemple sur les balises est très simpliste... comment puis-je appeler 3 balises, deux qui doivent être exécutées et une qui est ignorée. Avant le 12 mai, cela fonctionnait bien, mais maintenant, ce n'est plus le cas :

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

Votre document dit maintenant que cela devrait être comme ça, mais ne fonctionne pas, renvoie le même message d'erreur que j'ai soumis avec le "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>'

Erreur : Erreur : plusieurs fichiers de configuration spécifiés
à C:\Users\echavez\AppData\Roaming\npm\node_modules\protractor\built\cli.js:155:15
à C:\Users\echavez\AppData\Roaming\npm\node_modules\protractor\node_modules\optimist\index.js:307:21
à Array.forEach (natif)
à parseArgs (C:\Users\echavez\AppData\Roaming\npm\node_modules\protractor\node_modules\optimist\index.js:305:16)
à Object.Argv.self.parse (C:\Users\echavez\AppData\Roaming\npm\node_modules\protractor\node_modules\optimist\index.js:140:16)
à l'objet. (C:\Users\echavez\AppData\Roaming\npm\node_modules\protractor\built\cli.js:158:21)
à Module._compile (module.js:571:32)
à Object.Module._extensions..js (module.js:580:10)
à Module.load (module.js:488:32)
à tryModuleLoad (module.js:447:12)

Je peux voir dans le document Cucumber que la syntaxe de codage pour la définition des étapes a également changé ? Pourquoi faire plus compliqué maintenant ? Car avec la nouvelle syntaxe, je dois regrouper les étapes par scénarios. Mais il y a certaines étapes qui se répètent dans plusieurs scénarios, répétant ainsi le code sur chaque scénario ? Je vais me retrouver avec des redondances dans mon code. Pourquoi?

Voici un extrait de ce que j'ai MAINTENANT dans mon fichier 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);
    });
});

Voici un extrait de ce qui est proposé comme "mise à jour"... pour moi, c'est 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 le scénario a plusieurs Donné, Quand, Alors... faut-il les énumérer ici, comme ceci ? :
defineSupportCode(function({Donné, Et, Et, Quand, Et, Et, Alors, Et, Et, Et}) {

Si c'est vrai... Alors maintenant, si je veux réutiliser l'étape « Quand il y a des enregistrements dans le widget EDI-Rejets » dans un autre scénario de ma fonctionnalité, dois-je à nouveau coder toute la fonction ?

Tout ce dont j'ai besoin, ce sont des réponses avec des arguments. Ne le prenez pas personnellement.

Tous les 5 commentaires

Si le scénario a plusieurs Donné, Quand, Alors... faut-il les énumérer ici, comme ceci ? :
defineSupportCode(function({Donné, Et, Et, Quand, Et, Et, Alors, Et, Et, Et}) {

Non. Given , When et Then sont des fonctions que vous pouvez appeler plusieurs fois (similaire à this.Given , etc. de 1.x). And n'est pas une fonction. Vous pouvez voir toutes les fonctions passées par defineSupportCode dans la référence API qui est liée à partir du README.md

Je peux voir dans le document Cucumber que la syntaxe de codage pour la définition des étapes a également changé ?

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

Pourquoi faire plus compliqué maintenant ? Car avec la nouvelle syntaxe, je dois regrouper les étapes par scénarios.

Ce n'est pas vrai

Merci je vais vérifier ça !

@charlierudolph Tnx pour l'explication !

Ce fil a été automatiquement verrouillé car il n'y a eu aucune activité récente après sa fermeture. Veuillez ouvrir un nouveau problème pour les bogues liés.

Cette page vous a été utile?
0 / 5 - 0 notes