2012-12-21 11 views
9

में ककड़ी के लिए कदम परिभाषाओं स्थान को परिभाषित करने के मेरे पास मेरी src/resources/com/features में feature files और मेरे step definitionssrc/main/java/com/step_definitions मेंकैसे IntelliJ 12

मेरे परीक्षण सब सही ढंग से चलाने के लिए, लेकिन इंटेलीजे जहां कदम defs हैं देखने के लिए मना कर दिया है, भले ही मैं पूछता हूँ यह एक नया बनाने के लिए। यह कहां कॉन्फ़िगर किया गया है?

उत्तर

2

डिफ़ॉल्ट सम्मेलन step definitions के तहत step_definitions sub-folder में परिभाषित किया गया है। उप-फ़ोल्डर का नाम महत्वपूर्ण नहीं है; यह वही काम करेगा जो नाम है।

मेरा अनुमान है कि एक आईडीई एक ही सम्मेलन का पालन करेगा, और इसलिए IntelliJ को विशेषताओं को निष्पादित करना चाहिए यदि step_definitions फ़ोल्डर सुविधाओं फ़ोल्डर के अंतर्गत स्थानांतरित हो।

cucumber command सुविधाओं को निष्पादित करने से पहले फ़ाइलों की आवश्यकता के लिए -r विकल्प लेता है। इस विकल्प का उपयोग गैर-पारंपरिक जगह में step_definitions की तलाश करने के लिए किया जा सकता है।

मुझे लगता है कि आपके पास कमांडलाइन से आने पर इन चरणों_definitions देखने के लिए ककड़ी के लिए स्थानीय कॉन्फ़िगरेशन पर -r src/main/java/com/step_definitions हो सकता है।

रनिंग cucumber --verbose दिखाता है कि कमांड लाइन चरण परिभाषा कोड कहां पा रही है।

+0

मैं अपने कदम आगे बढ़ कोशिश की सुविधाओं/step_definitions में परिभाषाएं और यह अभी भी प्रतीत नहीं होता है उन्हें ढूंढें :( – theawesome

11

मैं बिल्कुल एक ही समस्या के साथ अपने बालों को फाड़ रहा था (रिकॉर्ड के लिए मेरी पृष्ठभूमि जावा, रूबी, ककड़ी और रूबीमाइन है लेकिन मैं इंटेलिजे और ककड़ी-जेवीएम के लिए बिल्कुल नया हूं)।

में ककड़ी-JVM run configuration आप जहां कदम परिभाषाओं glue क्षेत्र में जमा हो जाती है के रूप में IntelliJ documentation में उल्लेख पैकेज निर्दिष्ट करना होगा। IntelliJ - कम से कम मेरे लिए - एक डिफ़ॉल्ट मान प्रदान नहीं करता प्रतीत होता है।

आगे विस्तार से बता दें एक बहुत ही बुनियादी परियोजना इस तरह दिखता है:

Example 
└───src 
    ├───main 
    │ └───java 
    └───test 
     ├───java 
     │ └───com 
     │  └───bensnape 
     │   └───example 
     │     MyStepdefs.java 
     └───resources 
       example.feature 

glue यहाँ मूल्य com.bensnape.example होगा।

अद्यतन

कुछ और आज सुबह इंटेलीजे साथ खेलने के बाद, ऐसा लगता है कि यह अगर आप ककड़ी-JVM सम्मेलनों का पालन आप के लिए glue मूल्य प्रदान करता है - यानी सुविधाओं src/test/resources/<package> और इसी के तहत जीना चाहिए , चरणों को src/test/java/<package> के तहत रहना चाहिए।

उदाहरण परियोजना पेड़:

Example 
└───src 
    ├───main 
    │ └───java 
    └───test 
     ├───java 
     │ └───com 
     │  └───bensnape 
     │   └───example 
     │     MyStepdefs.java 
     │ 
     └───resources 
      └───com 
       └───bensnape 
        └───example 
          example.feature 
+0

तो मैंने अब को देखने के लिए अपने कोड को दोबारा प्रतिक्रिया दी है, यह मदद नहीं प्रतीत होता है। मैं कॉन्फ़िगरेशन चलाने के लिए भी चला गया हूं और गोंद पथ (ककड़ी डिफ़ॉल्ट कॉन्फ़िगरेशन) में com.step_definitions दर्ज किया है। मैंने यह सुनिश्चित नहीं किया है कि क्या रखना है, संभवतः यह केवल रन को प्रभावित करता है, आईडीई नहीं? – theawesome

+0

उत्सुकता से, अब यह मेरी चरण डीफ़ फाइलों को उठाता है, और जब मैं एक step_definition बनाने के लिए सहायक का चयन करता हूं, तो यह मुझे मेरी फ़ाइलों की एक सूची देता है जहां मैं इसे डाल सकता हूं। हालांकि यह अभी भी जोर देता है (फ़ाइल में एक नई विधि डालने के बाद भी) कि चरण def अपरिभाषित है। – theawesome

+0

क्षमा करें मैं छुट्टी पर दूर गया हूँ। क्या आपने अपनी समस्या का समाधान किया है? यदि नहीं, तो शायद आप अधिक जानकारी के साथ प्रश्न को अद्यतन करने का प्रयास कर सकते हैं क्योंकि वास्तव में आप जिन समस्याओं का सामना कर रहे हैं उन्हें देखना मुश्किल है। –

3

आप एक (परीक्षण) स्रोत रूट के रूप में चिह्नित करते हैं फ़ोल्डर (राइट क्लिक करें फ़ोल्डर -> के रूप में मार्क निर्देशिका -> (टेस्ट) स्रोत रूट) यह रूप में अच्छी तरह से काम करेगा।

मेरे grails परियोजना इस तरह की स्थापना की है: भी अंकन ककड़ी एक के रूप में कदम परिभाषाओं ठीक प्रकार से पार्स कर रहे थे के बाद

 test 
     ├───cucumber 
     │ └───steps 
     │ └───support 
     │ └───features 
     └───unit 

यूनिट परीक्षण स्रोत जड़ के रूप में चिह्नित किया गया था।

+0

यह मेरी grails परियोजना का जवाब है। धन्यवाद। –

0

मुझे संस्करण 12.1.3 के साथ एक ही समस्या हो रही थी। मेरे फ़ोल्डरों और फ़ाइलों को मानक उत्तरों में निर्धारित किया गया है जैसा कि अन्य उत्तरों द्वारा वर्णित है और कोड को परीक्षण स्रोत के रूप में चिह्नित करने से इसे हल नहीं किया गया है।

तब मैं 12.1.6 के लिए अद्यतन समस्या तय किया गया था :)

3

आप खोलने के द्वारा विश्व स्तर पर गोंद स्थान निर्धारित कर सकते हैं "संपादन विन्यास -> चूक -> ककड़ी जावा -> गोंद" और पैकेज का नाम जोड़ें।

(इंटेलीजे 12.1.4)

-2

इंटेलीजे Cucumber-Java/Groovy के लिए एक प्लगइन का समर्थन करता है। इस प्लगइन को स्थापित करने से फीचर फ़ाइल में दिए गए चरणों से नेविगेशन को चरण परिभाषाओं में सक्षम किया जाएगा।

enter image description here

Alt + कदम Defintions

enter image description here

और चरण परिभाषा बनाने के बाद बनाने के लिए दर्ज करें, नेविगेशन आसानी से संभव है

enter image description here

+0

यह केवल तभी काम करता है जब चरण परिभाषा और सुविधा में समान पैकेज संरचना हो – Chandru