2011-06-01 14 views
9

Play के लिए dependencies.yml फ़ाइल में परीक्षण निर्भरता घोषित करने का कोई तरीका है! फ्रेमवर्क? मुझे documentation में परीक्षण निर्भरताओं के बारे में कोई जानकारी नहीं दिखाई दे रही है।Play में एक टेस्ट निर्भरता घोषित करना!

उदाहरण के लिए, मैं मॉकिटो जैसे परीक्षण पुस्तकालय का उपयोग करना चाहूंगा लेकिन स्पष्ट कारणों से उत्पादन में इसका उपयोग नहीं किया जा सकता है।

उत्तर

9

ऐसा लगता है कि आप Play.प्रति निर्भरता को परिभाषित कर सकते हैं, इस तरह कि आप application.conf फ़ाइल में किसी विशिष्ट आईडी के लिए सेटिंग कैसे परिभाषित कर सकते हैं। ऐसा करने के लिए, आपको अपनी निर्भरता परिभाषा में एक अतिरिक्त id विशेषता जोड़ने की आवश्यकता है।

उदाहरण के लिए

, यदि आप केवल शामिल mockito कोर test की एक रूपरेखा आईडी के साथ वातावरण में, अपने dependencies.yml फ़ाइल की तरह निम्नलिखित लगेगा करना चाहता था:

require: 
    - org.mockito -> mockito-core 1.8.5: 
     id: test 

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

play dependencies --%test --sync 
play test 

, आप चलाने चाहते हैं:

play dependencies --sync 
play run 

नकारात्मक पक्ष यह है कि जब भी आप परीक्षण और उत्पादन मोड के बीच स्विच करते हैं, तो आपको अपनी निर्भरताओं को सिंक करना याद रखना होगा, लेकिन मुझे लगता है कि यह वर्तमान में सबसे अच्छा है यदि आप यह सुनिश्चित करना चाहते हैं कि निर्भरता केवल क्लासपाथ पर है जब परीक्षण मोड में ।

+0

क्षमा करें, मैं अभी भी थोड़ा उलझन में हूं। बस स्पष्ट करने के लिए, मैं फिर एक मॉकिटो निर्भरता कैसे घोषित करूंगा जो परीक्षण के लिए आवश्यक है लेकिन जब मैं "प्ले रन" करता हूं तो इसका उपयोग नहीं किया जाता है? (और आईडी परीक्षण नहीं है) – digiarnie

+0

@digiarnie ठीक है, अगर आपके पास अलग-अलग परीक्षण और उत्पादन वातावरण हैं, तो निर्दिष्ट आईडी के बिना कोई उस विशिष्ट निर्भरता को लोड नहीं करेगा जब आप 'प्ले निर्भरता' कहते हैं। यदि दोनों वातावरण समान हैं (उदा। आप 'प्ले रन 'बनाम' प्ले टेस्ट 'को कॉल कर रहे हैं), यह अभी भी प्रबंधनीय होना चाहिए, आपको केवल निर्भरताओं को बीच में सिंक करना होगा। जब मैं यह निर्धारित करता हूं कि ऐसा करने का सबसे अच्छा तरीका क्या है, तो मैं जवाब अपडेट कर दूंगा। –

+0

ठीक है, मैं देखता हूं कि अब आप क्या कर रहे हैं। मैं पहले उलझन में था क्योंकि मैंने सोचा था कि "निर्भरता" आपके पास एक कीवर्ड था, लेकिन आप वास्तव में वास्तविक पुस्तकालय (मेरा बुरा) मतलब था। आपका सुझाव काम करने लगता है लेकिन आईड्स को स्विच करना थोड़ा परेशान है लेकिन यह अभी एकमात्र तरीका प्रतीत होता है। आपकी अंतर्दृष्टि के लिए धन्यवाद। – digiarnie

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