Cucumber-js: आवश्यकता-मॉड्यूल के तहत ककड़ी-पूर्व निर्धारित मॉड्यूल की अनुमति दें

को निर्मित 13 अप्रैल 2021  ·  4टिप्पणियाँ  ·  स्रोत: cucumber/cucumber-js

मैं एक बाहरी मॉड्यूल बनाने की कोशिश कर रहा हूं जहां मैं ककड़ी परीक्षण चलाने के लिए प्रीसेट सेट कर सकता हूं।
इस बाहरी मॉड्यूल में एक सहकर्मी निर्भरता के रूप में @cucumber/cucumber , इसलिए यह इसे सीधे स्थापित नहीं करता है। इसलिए, यह निर्भरता प्रीसेट को World कंस्ट्रक्टर सेट करने के साथ-साथ Given , When , Then को वैश्विक दायरे में जोड़ने की अनुमति देती है, इसलिए हमारे पास हो सकता है क्लीनर कदम परिभाषाएँ।

यह सब तब काम करता है जब मेरे पास स्थानीय फ़ाइल से cucumber-js --require ./test-preset.setup.js रूप में ककड़ी-जेएस विकल्प झंडे होते हैं, हालांकि, एक बार एक ही प्रीसेट पर बाहरी मॉड्यूल पर जाने के बाद और इसे cucumber-js --require-module cucumber-preset-foo के रूप में प्रक्रिया की आवश्यकता होती है, प्रक्रिया #1326 पर प्रस्तुत उसी त्रुटि के साथ समाप्त होता है।

मैं क्ली स्रोत कोड पर कुछ खोज सकता हूं जहां 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 टिप्पणियाँ

हाय @ ज़ानोना

आपका मॉड्यूल दिलचस्प लग रहा है
उस मुद्दे पर भी आपकी जांच

जैसा कि आपके पास पहले से ही एक अच्छा विचार है कि क्या हो रहा है और इसे कैसे ठीक किया जा सकता है, क्या आपको लगता है कि आप इसके लिए एक पीआर खोल सकते हैं, और इसके आसपास की चर्चा का समर्थन कर सकते हैं?

हम्म, मुझे आवश्यकता-मॉड्यूल से ठीक पहले रीसेट को स्थानांतरित करने में कोई समस्या नहीं दिख रही है। इसके बाद अतीत में किस आवश्यकता-मॉड्यूल का उपयोग किया गया था, इसका एक उत्पाद था जिसमें ट्रांसपिलर स्थापित करने का प्राथमिक उपयोग मामला था (टाइपस्क्रिप्ट/बेबेल)

बहुत अच्छा लगता है दोस्तों।
मैं निश्चित रूप से एक पीआर तैयार कर सकता हूं, शायद हम इसे एक बग के बजाय एक फीचर के रूप में दायर कर सकते हैं, इसलिए मैं कस्टम प्रीसेट बनाने में सक्षम होने वाले उपयोगकर्ता के लिए परीक्षण तैयार कर सकता हूं और यह सुनिश्चित कर सकता हूं कि परीक्षण धावक इसे समझता है?

वैकल्पिक रूप से, हम बस उन दो पंक्तियों को स्वैप कर सकते हैं और असफल परीक्षणों को देख सकते हैं?

आप इसके बारे में कैसे जाना पसंद करेंगे?

ककड़ी के संबंध में, यह एक बग बना हुआ है क्योंकि एक मॉड्यूल को नियमित रूप से लोड करने का प्रयास करते समय एक अप्रत्याशित त्रुटि होती है, जो वास्तव में काम करना चाहिए।

लेकिन आप अभी भी अपने पीआर को एक स्कोप्ड टेस्ट के साथ एन्हांसमेंट के रूप में स्कोप कर सकते हैं जैसा आपने वर्णन किया है - मुझे वास्तव में यह विचार पसंद है - जिससे उस मुद्दे को भी ठीक करने का लाभ होगा। तुम क्या सोचते हो?

दो पंक्तियों को स्वैप करने की संभावना के संबंध में, यह पहला अच्छा प्रारंभिक बिंदु आईएमओ हो सकता है :)

क्या यह पृष्ठ उपयोगी था?
0 / 5 - 0 रेटिंग्स