2013-02-06 44 views
10

के आधार पर Playframework सेटिंग्स मैं playframework 2.1-RC2 का उपयोग कर रहा हूं। सबसे पहले मैंने all thesimilarquestions देखा है, इसलिए मैंने प्रति पर्यावरण application.conf फ़ाइल को अलग करने के सामान्य निर्देशों का पालन किया। इसलिए मैं application.test.conf है और मैं इस तरह से परीक्षण चलाएँ:पर्यावरण

play -Dconfig.file=./conf/application.test.conf "test" 

मैं विभिन्न संयोजनों की कोशिश की,

तरह
play -Dconfig.file=./conf/application.test.conf ~test 

या

play -Dconfig.file=conf/application.test.conf ~test 

फिर भी प्रयास विफल, यह सिर्फ करता है नहीं चुना जाता है, डिफ़ॉल्ट एक (application.conf) इसके बजाए है।

दूसरी तरफ से, अगर मैं ऐसा

play -Dconfig.file=./conf/application.dev.conf "run" 

तो आवेदन सही config चुनता है।

तो मैं परीक्षण कॉन्फ़िगरेशन फ़ाइल कैसे निर्दिष्ट कर सकता हूं?

val main = play.Project(appName, appVersion, appDependencies).settings(
    javaOptions in Test += "-Dconfig.file=conf/test.conf", 
    ... 
) 

बोनस::

उत्तर

13

मैं एक पार मंच संगत तरीके से यह सीधे शामिल करने के लिए Build.scala में है में इस specifiy को सबसे मजबूत रास्ता मिल गया है एक बार कॉन्फ़िगर और भूल जाते हैं ;-)

+0

जिस दिन आपने अपना दिन बनाया है। लेकिन यह कैसे आता है कि कंसोल के माध्यम से वही काम करना काम नहीं करता है? .. – zapadlo

+0

मुझे नहीं पता कि आप कौन सी ओएस चलाते हैं लेकिन कम से कम विंडोज़ में एक ज्ञात, लेकिन कम प्राथमिकता वाली बग है, वह खेल पैरामीटर को पास नहीं करता है JVM सही ढंग से (और यह एक JVM पैरामीटर है, नाटक पैरामीटर नहीं)। एसबीटी बेहतर करता है ;-) – Leo

+2

यह एक दिलचस्प दृष्टिकोण है, लेकिन कीवर्ड "टेस्ट" कहां से आता है? क्या देव/प्रीप्रोड/प्रोड जैसे पर्यावरण के साथ एक ही चीज़ करना संभव है ...? धन्यवाद – c4k

1

ग्लोबलसेटिंग/ग्लोबल नामित ऑनलोड लोड कॉन्फिग पर विधि को ओवरराइड करना और यह आपको उस नियंत्रण में सक्षम बनाता है जहां आपका ऐप आपकी कॉन्फ़िगरेशन की तलाश करेगा।

तो हमारे आवेदन में से एक में मेरे पास मेरे conf/फ़ोल्डर के लिए यह सेटअप नीचे है।

conf/application.conf --> configurations common for all environment 
conf/dev/application.conf --> configurations for development environment 
conf/test/application.conf --> configurations for testing environment 
conf/prod/application.conf --> configurations for production environment 

इसके साथ, आप कॉन्फ़िगरेशन के लिए सेटअप जैसे विरासत को लागू करने में सक्षम हैं, आपके पास सामान्य वातावरण मोड के लिए सामान्य और 3 अन्य हैं।

कोड अपने onLoadConfig विधि के अंदर सिर्फ अपने पर्यावरण के लिए मुख्य विन्यास और सेट सही वापस आने विन्यास विशिष्ट लोड तो नीचे की तरह विन्यास उदाहरण लौटना चाहिए:

**return new Configuration(baseConfig.withFallback(envConfig));** 

कोशिश कोड के इस blog post for complete snippet की जाँच करें।

मुझे उम्मीद है कि इससे मदद मिलती है।