Cucumber-js: كيفية استخدام العلامة في سيناريو وظيفتي Cucumber.js؟

تم إنشاؤها على ٨ ديسمبر ٢٠١٥  ·  5تعليقات  ·  مصدر: cucumber/cucumber-js

أهلا،

كيف تعرف السيناريو الذي يستدعي وظيفتي؟ كيف أستخدم العلامات في سيناريو وظيفتي؟

في الواقع لدي سيناريو واحد:

Feature: create module feature
  As a admin
  I want to use create module

  <strong i="8">@createModule</strong>
  Given I am logged as 'ADMIN'
    And I am on "/admin/create"
   Then The "book_id" field should be empty

أرغب في استخدام علامتي createModule في وظيفتي بعد ذلك:

this.Then(/^The "?([^"]*)"? field should be empty$/, function (el) {

    if (myModule === @createModule) {
        ...
    } else if {
        ...
    }

    return main_po.checkIsEmptyElement(this, el);
});

أرغب في الحصول على علامة createModule الخاصة بي ، لتحديد السيناريو المسمى ، أو أي بديل آخر ، أود معرفة السيناريوهات التي تستدعي وظيفتي.

التعليق الأكثر فائدة

تم حلها :

أضفت :

this.Before(function (scenario, callback) {
    var tags = scenario.getTags();

    this.current_module = tags[0].getName();

    callback();
});

ووظيفتي:

this.Then(/^The "?([^"]*)"? field should be empty$/, function (el) {

    if (this.current_module === @createModule) {
        ...
    } else if {
        ...
    }

    return main_po.checkIsEmptyElement(this, el);
});

ال 5 كومينتر

تُستخدم العلامات لاختيار السيناريوهات المراد تشغيلها عند تنفيذ cucumber-js (انظر التمهيدي). لا تملك الخطوات حاليًا أي طريقة لمعرفة السيناريو الذي يتم تشغيلها حاليًا من أجله. ستشارك جميع الخطوات ضمن السيناريو نسخة عالمية (يتم الوصول إليها من خلال this في تعريف الخطوة).

تم حلها :

أضفت :

this.Before(function (scenario, callback) {
    var tags = scenario.getTags();

    this.current_module = tags[0].getName();

    callback();
});

ووظيفتي:

this.Then(/^The "?([^"]*)"? field should be empty$/, function (el) {

    if (this.current_module === @createModule) {
        ...
    } else if {
        ...
    }

    return main_po.checkIsEmptyElement(this, el);
});

jechazelle شكرًا لنشر الحل الخاص بك ، أحتاج إلى نفس الوظيفة لحالة استخدام مختلفة :)

في cucumber-js 3.2.1 أنا أستخدم

Before({timeout: 20000}, async function(testCase) {
  this.tags = testCase.pickle.tags.map((tag) => tag.name);`
  ...
}

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

هذا يسمح للبناء بالعودة إلى اللون الأخضر ، في حين أن القوى التي تقرر ما إذا كانت تريد إصلاح الخلل أم لا.

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

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