2012-10-16 15 views
5

मैं स्वचालन उद्देश्यों के साथ ककड़ी-वाटर-वेबड्राइवर का उपयोग कर रहा हूं। मेरे पास निम्न निर्देशिका संरचना है:ककड़ी के सामान्य चरणों को रखने के लिए सर्वोत्तम अभ्यास

|features 
-|feature1 
--|1.feature 
--|step_definitions 
---|1.rb 
-feature2 
--|2.feature 
--|step_definitions 
---|2.rb 

और इसी तरह। मुझे यह जानने की जरूरत है कि 1.rb और 2.rb में अनावश्यकता को कम करने के लिए सबसे अच्छा अभ्यास क्या है। feature1 और feature2 पूरी तरह से अलग हैं इसलिए मैं एक निर्देशिका में दोनों को गठबंधन नहीं कर सकता। इसके अलावा कुछ हिस्सा भी है जहां फीचर लाइन समान है लेकिन चरणों में निष्पादन अलग है इसलिए यदि वे एक साथ हैं तो यह अस्पष्टता पैदा करेगा।

मुझे यह जानने की जरूरत है कि 1.rb और 2.rb में कुछ हिस्सा आम है या नहीं, जहां मुझे इसे सामान्य चरण परिभाषाओं को रखने के लिए सबसे अच्छा अभ्यास करना चाहिए।

+0

कृपया प्रासंगिक कोड दिखाएं। –

+0

आपको क्या चाहिए ?? "डेटाबेस प्रविष्टि की जांच करें" की तरह दोनों सुविधाओं में है लेकिन डेटाबेस की जांच अलग है, मैं उन्हें मिश्रण और चीजों को जटिल नहीं करना चाहता हूं। लेकिन "दिए गए I में लॉग इन" जैसे कदम समान हैं इसलिए मैं अपनी चरण परिभाषाओं को कहीं और जोड़ना चाहता हूं। –

उत्तर

1

ककड़ी केवल वर्तमान या निम्न निर्देशिकाओं में कदम परिभाषा के लिए खोज करता है। तो हम दो फीचर निर्देशिका नीचे आम कदम परिभाषाओं निर्देशिका या फ़ाइल नहीं हो सकता, मैं अब इस कदम का निर्धारण आपकी 1 में

require "#{File.dirname(__FILE__)}/../../common_steps.rb" 

जोड़ने लोड करने के लिए

|features 
-|feature1 
--|1.feature 
--|step_definitions 
---1.rb 
-feature2 
--|2.feature 
--|step_definitions 
---2.rb 
-|common_steps.rb <-- keep common steps in here 

के रूप में इस के लिए एक समाधान मिल गया। आरबीएस। भी आप लंबे समय तक निर्देशिका संरचना है तो आप हर तरह के निम्न सुविधाओं का आम कदम युक्त निर्देशिका में common_steps.rb फ़ाइल रख सकते हैं और आप with--

require "#{File.dirname(__FILE__)}/../common_steps.rb" 

इस कोड को पिछले common_steps.rb फ़ाइल की आवश्यकता होती है सकते हैं। यह आपकी निर्देशिका संरचना और step_definition फ़ाइलों को साफ रखेगा

2

यह अलग-अलग निर्देशिकाओं में अपनी सुविधा को अलग करने के लिए ठीक है, लेकिन यह features निर्देशिका के तहत अपने *_step.rb एक step_definitions निर्देशिका में एक साथ फ़ाइलें रखने के लिए सबसे अच्छा है। आप common_steps.rb फ़ाइल में दोनों सुविधाओं के लिए सामान्य कदम उठा सकते हैं (और test_data_creation_steps.rbcommon_steps.rb के बजाय test_data_creation_steps.rb भी बेहतर होगा)।

अनुवाद करने के लिए है कि एक ही शैली निर्देशिका संरचना आरेख में अपने प्रश्न के रूप में, मैं निम्नलिखित सुझाव देंगे:

|features 
-|feature1 
--|1.feature 
-feature2 
--|2.feature 
-|step_definitions 
--|1.rb 
--|2.rb 
--|common_steps.rb <-- put your common steps in here 
+0

धन्यवाद आदमी लेकिन मुझे केवल एक संदेह है कि अगर मैं "ककड़ी /features/feature1/1.feature" चलाता हूं तो पेड़ 2-3 स्तर गहरा होता है और मैं विशिष्ट सुविधा को चलाने की इच्छा करता हूं "ककड़ी /features/feature1/feature1.1/1.1.feature" तो ऑटोकोड/फीचर/step_definition –

+0

को खींचा जाएगा हाँ, वे लोड हो जाएंगे। –

+0

यह गलत है, वे लोड नहीं होंगे। आपको ककड़ी को कहां देखना होगा: 'ककड़ी-विशेषताएं फीचर/फीचर 1/1. फीचर'। डिफ़ॉल्ट रूप से, निर्दिष्ट परिभाषाओं और इसके उप-श्रेणियों की निर्देशिका में चरण परिभाषाएं और समर्थन कोड की तलाश की जाती है। – jbpros

संबंधित मुद्दे