Cucumber-js: السماح بوحدات الخيار المعدة مسبقًا ضمن وحدة الطلب

تم إنشاؤها على ١٣ أبريل ٢٠٢١  ·  4تعليقات  ·  مصدر: cucumber/cucumber-js

أحاول إنشاء وحدة خارجية حيث يمكنني إعداد إعداد مسبق لإجراء اختبار الخيار.
تحتوي هذه الوحدة الخارجية على @cucumber/cucumber كاعتماد على النظير ، لذلك لا يتم تثبيتها مباشرة. لذلك ، تسمح هذه التبعية للإعداد المسبق بتعيين مُنشئ World بالإضافة إلى إضافة Given ، When ، Then إلى النطاق العالمي ، لذلك يمكننا الحصول على تعريفات خطوة أنظف.

يعمل كل شيء عندما يكون لديّ علامات خيار cucumber-js مرتبطة بملف محلي كـ cucumber-js --require ./test-preset.setup.js ، ومع ذلك ، بمجرد الانتقال إلى نفس الإعداد المسبق إلى وحدة خارجية وتتطلب ذلك cucumber-js --require-module cucumber-preset-foo ، العملية ينتهي بنفس الخطأ المعروض في # 1326.

يمكنني اكتشاف شيء ما في الكود المصدري cli حيث يتم استدعاء supportCodeLibraryBuilder.reset مباشرة بعد أن تكون هذه الوحدات الخارجية مطلوبة من خلال supportCodeRequiredModules ، مما قد يجعل التفاعل غير قابل للتطبيق مع مثيل الخيار قيد التشغيل بمجرد إعادة تعيين بياناته مباشرة بعد.

https://github.com/cucumber/cucumber-js/blob/e2fd32a4fe411484275307e2a4b59605a8ded165/src/cli/index.ts#L160 -L161

https://github.com/cucumber/cucumber-js/blob/e2fd32a4fe411484275307e2a4b59605a8ded165/src/support_code_library_builder/index.ts#L402 -L417

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

node: v15.8.0
@cucumber/cucumber: 7.1.0
os: Linux
bug help wanted accepted

ال 4 كومينتر

مرحبًا zanona

تبدو الوحدة النمطية الخاصة بك مثيرة للاهتمام
تحقيقك حول هذه المسألة أيضا

نظرًا لأن لديك بالفعل فكرة جيدة عما يحدث وكيف يمكن إصلاحه ، هل تعتقد أنه يمكنك فتح علاقات عامة لذلك ، ودعم المناقشة حول ذلك؟

حسنًا ، لا أرى أي مشكلة في نقل إعادة التعيين إلى ما قبل الوحدة النمطية. كان بعد ذلك أكثر نتاجًا لما تم استخدام الوحدة النمطية من أجله في الماضي والذي كان له حالة الاستخدام الأساسية المتمثلة في إعداد محولات الصوت (مطبوعة / بابل)

يبدو رائعًا يا رفاق.
يمكنني بالتأكيد إعداد العلاقات العامة ، ربما يمكننا تحديد نطاقها كميزة بدلاً من خطأ ، حتى أتمكن من إعداد الاختبارات التي تم تحديد نطاقها بحيث يتمكن المستخدم من إنشاء إعداد مسبق مخصص والتأكد من أن عداء الاختبار يفهمه؟

بدلاً من ذلك ، يمكننا ببساطة تبديل هذين الخطين ومراقبة الاختبارات الفاشلة؟

كيف تفضل أن تفعل ذلك؟

فيما يتعلق بالخيار ، يظل هذا خطأ نظرًا لوجود خطأ غير متوقع أثناء محاولة تحميل وحدة بطريقة منتظمة ، يجب أن يعمل ذلك بالفعل.

ولكن لا يزال بإمكانك تحديد نطاق العلاقات العامة الخاصة بك كتعزيز من خلال اختبار محدد النطاق كما وصفته - تعجبني الفكرة حقًا - والتي سيكون لها فائدة لإصلاح هذه المشكلة أيضًا. ماذا تعتقد؟

فيما يتعلق بإمكانية تبديل الخطين ، فقد يكون ذلك أول نقطة بداية جيدة IMO :)

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