2012-02-23 13 views
8

मैं वर्तमान में स्प्रिंग को अपने ककड़ी परीक्षणों में एकीकृत करने की कोशिश कर रहा हूं।वसंत में ककड़ी को कैसे एकीकृत करें

http://www.zsoltfabok.com/blog/2012/01/cucumber-jvm-di/

लेकिन कोड नहीं बुलाया जा रहा है: मैं एक कस्टम SpringFactory के रूप में उल्लिखित है। कारखाने को अपने परीक्षणों के साथ 'हुक अप' करने का सबसे अच्छा तरीका क्या है?

[हटाए गए जवाब पर टिप्पणी से स्पष्टीकरण: मुख्य मुद्दा यह है कि अपने परीक्षण मुख्य धावक, अर्थात @RunWith (Cucumber.class) के रूप में ककड़ी है इसलिए यहाँ SpringJUnit4ClassRunner उपयोग नहीं कर सकते है। यह उपरोक्त लिंक में वर्णित है लेकिन cucumber.xml को कैसे पढ़ा जाता है इसका कोई विवरण नहीं है। मैं एक नया SpringFactory को शामिल किया है, लेकिन यह एक्सएमएल फ़ाइल को पढ़ने नहीं है ....]

अद्यतन: वास्तव में थोड़ा और आगे जोड़कर मिल गया है:

<dependency> 
     <groupId>info.cukes</groupId> 
     <artifactId>cucumber-spring</artifactId> 
     <version>1.0.0.RC15</version> 
    </dependency> 

हालांकि, मैं @Autowired है चर कौन-सी नहीं परीक्षण के रूप में इंजेक्शन किया जा रहा है ककड़ी द्वारा चलाया जा रहा है।

क्या किसी और को यह समस्या है?

उत्तर

5

"ककड़ी वसंत एकीकरण" के लिए एक त्वरित Google खोज मुझे here और here लाती है। यदि आप cuke4duke का उपयोग कर रहे हैं तो यह जाने का एक आसान तरीका है।

नमूना यह इंगित करता है कि डिफ़ॉल्ट रूप से cuke4duke आपके क्लासपाथ के आधार से cucumber.xml लोड करेगा। यह एक स्प्रिंग कॉन्फ़िगरेशन फ़ाइल है जिसमें @StepDefinition के साथ एनोटेटेड कक्षाओं के लिए component-scan शामिल होना चाहिए।

आपको SpringFactory प्रदान करने की आवश्यकता नहीं होगी, आपको @RunWith एनोटेशन का उपयोग करने की आवश्यकता नहीं होगी, बस कुछ वसंत कॉन्फ़िगरेशन और एक या अधिक जेवीएम गुण प्रदान करें।

+0

यह काम करता है! यहां कुछ अतिरिक्त बिंदु दिए गए हैं जिनसे मेरा समाधान काम कर रहा है: 1. पिकोकॉन्टेनर मेवेन निर्भरता का उपयोग न करें 2. अपने घटक-स्कैन के लिए चरण वर्ग पर @StepDefAnnotation का उपयोग करें। – Reimeus

1

मैंने अभी आपका प्रश्न देखा है। शायद cucumber-spring मॉड्यूल निर्भरता गायब थी। मैंने भंडार अद्यतन किया है और अब सभी निर्भरताओं को ठीक होना चाहिए (मैं आईवी का उपयोग कर रहा हूं)।

9

अद्यतन: cuke4duke प्रोजेक्ट अब अप्रचलित है और इसे ककड़ी-जेवीएम द्वारा प्रतिस्थापित किया गया है।

मुझे भी यही समस्या थी और मूल कारण यह था कि ककड़ी-वसंत-1.1.5.jar में स्प्रिंगफ़ैक्टरी द्वारा cucumber.xml को नहीं पढ़ा जा रहा था। स्प्रिंग डी चुपचाप एनपीई में परिणामस्वरूप विफल रहा। submission 448 के बाद से, ककड़ी स्प्रिंगफैक्टरी अब cucumber.xml लोड नहीं करता है और आपको अपनी सभी चरण परिभाषा कक्षाओं में @ContextConfiguration("classpath*:cucumber.xml") शामिल करना होगा।

-1

समस्या यह है कि वसंत के कुछ संस्करण केवल ककड़ी-स्प्रिंग और ककड़ी-जेवीएम के कुछ संस्करणों के साथ काम करते हैं। जीतने वाले संयोजन को ढूंढने में जार संस्करणों के साथ दो दिन लग सकते हैं। तो "हैलो वर्ल्ड" बीडीडी परिदृश्य से शुरू करें जो सरल इंजेक्शन का उपयोग करता है जो आपको पता चलेगा, क्योंकि आपको उन जारों को ट्विक करने की आवश्यकता होगी जब तक कि आप काम न करें।

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

यदि आप वसंत के अपने विरासत संस्करण के साथ रहना चाहते हैं (बुरा विचार, बदलने का दर्द केवल बदतर हो जाएगा) एक और रणनीति बीबीडी परीक्षण के लिए जेबीहेव का उपयोग करना है।

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