Cucumber-js: ماذا حدث للمعامل "cucumberOpts"؟ هل هذا لم يعد مدعومًا؟

تم إنشاؤها على ٦ يونيو ٢٠١٧  ·  5تعليقات  ·  مصدر: cucumber/cucumber-js

هذه المشكلة هي استمرار لهذا https://github.com/angular/protractor/issues/4311 . حيث أناقش التغييرات على بناء الجملة حول كيفية استخدام المنقلة لتنفيذ نصوص Cucumberjs.

بناءً على طلب wswebcreation https://github.com/wswebcreation ، أغلقت هذه المشكلة الأخرى وفتحت واحدة جديدة هنا.

إذن ، تعليقي الأخير كان هذا ....

كان آخر سجل لديّ لعملية إعدام ناجحة في 12 مايو 2017 ، 14:03. التاريخ بالضبط في المستند الخاص بك.

مثالك حول العلامات بسيط للغاية ... فكيف يمكنني إذن استدعاء 3 علامات ، اثنتان يجب تنفيذهما وواحدة يتم تجاهلها. قبل 12 مايو ، كان هذا يعمل بشكل جيد ، لكنه لا يعمل الآن:

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

يوضح المستند الخاص بك الآن أنه يجب أن يكون على هذا النحو ، ولكنه لا يعمل ، ويعيد نفس رسالة الخطأ التي أرسلتها مع "التذكرة".

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>'

خطأ: خطأ: تم تحديد أكثر من ملف تكوين
في C: \ Users \ echavez \ AppData \ Roaming \ npm \ node_modules \ منقلة \ مبني \ cli.js: 155: 15
في C: \ Users \ echavez \ AppData \ Roaming \ npm \ node_modules \ منقلة \ node_modules \ Optist \ index.js: 307: 21
في Array.forEach (أصلي)
في parseArgs (C: \ Users \ echavez \ AppData \ Roaming \ npm \ node_modules \ منقلة \ node_modules \ Optist \ index.js: 305: 16)
في Object.Argv.self.parse (C: \ Users \ echavez \ AppData \ Roaming \ npm \ node_modules \ منقلة \ node_modules \ optimist \ index.js: 140: 16)
في الكائن. (C: \ Users \ echavez \ AppData \ Roaming \ npm \ node_modules \ منقلة \ مبني \ 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)

أستطيع أن أرى في وثيقة الخيار أنه تم تغيير بناء جملة الترميز لتعريف الخطوة؟ لماذا جعلها أكثر تعقيدا الآن؟ لأنه مع بناء الجملة الجديد ، يجب أن أجمع الخطوات حسب السيناريوهات. ولكن هناك بعض الخطوات التي تتكرر في عدة سيناريوهات وبالتالي تكرار الكود في كل سيناريو؟ سوف ينتهي بي الأمر مع الزيادات في الكود الخاص بي. لماذا ا؟

فيما يلي مقتطف لما لدي الآن في ملف 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);
    });
});

هذا مقتطف لما تم اقتراحه كـ "تحديث" ... بالنسبة لي هو 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);
    });
});

إذا كان السيناريو يحتوي على العديد من المعطيات ، ومتى ، ثم ... هل يجب تعدادها هنا ، مثل هذا ؟:
selectSupportCode (الوظيفة ({معطى ، و ، و ، و ، و ، و ، و ، و ، ثم ، و ، و ، و ، و ، و}) {

إذا كان هذا صحيحًا ... والآن ، إذا أردت استخدام الخطوة "عند وجود سجلات في أداة EDI-Rejects Widget" في سيناريو آخر في الميزة الخاصة بي ، فهل أحتاج إلى رمز كل الوظائف مرة أخرى؟

كل ما أحتاجه هو إجابات بالحجج. لا تأخذ الأمر على محمل شخصي.

ال 5 كومينتر

إذا كان السيناريو يحتوي على العديد من المعطيات ، ومتى ، ثم ... هل يجب تعدادها هنا ، مثل هذا ؟:
selectSupportCode (الوظيفة ({معطى ، و ، و ، و ، و ، و ، و ، و ، ثم ، و ، و ، و ، و ، و}) {

رقم Given و When و Then هي وظائف يمكنك الاتصال بها عدة مرات (على غرار this.Given ، إلخ من 1.x). And ليس دالة. يمكنك مشاهدة جميع الوظائف التي تم تمريرها بواسطة defineSupportCode في مرجع API المرتبط من README.md

أستطيع أن أرى في وثيقة الخيار أنه تم تغيير بناء جملة الترميز لتعريف الخطوة؟

راجع https://github.com/cucumber/cucumber-js/issues/679

لماذا جعلها أكثر تعقيدا الآن؟ لأنه مع بناء الجملة الجديد ، يجب أن أجمع الخطوات حسب السيناريوهات.

هذا ليس صحيحا

شكرا سوف تحقق من ذلك!

تضمين التغريدة

تم قفل سلسلة الرسائل هذه تلقائيًا نظرًا لعدم وجود أي نشاط حديث بعد إغلاقه. الرجاء فتح قضية جديدة للأخطاء ذات الصلة.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات