2009-07-24 8 views
6

मेरे Grails ऐप में, मैं अपने यूनिट परीक्षण चलाते समय खोजने योग्य प्लगइन को लोड होने से रोकना चाहता हूं। मैंGrails प्लगइन अक्षम करें

def grailsApplication 

def init = {servletContext -> 
    def currentEnv = grails.util.Environment.current.name 

    if (currentEnv == 'test') { 

     def doNothing = {println "Searchable is disabled"} 

     // This returns null! 
     def searchablePluginClass = grailsApplication.getClassForName("SearchableGrailsPlugin") 

     searchablePluginClass.metaClass.doWithDynamicMethods = doNothing 
     searchablePluginClass.metaClass.doWithSpring = doNothing 
     searchablePluginClass.metaClass.doWithApplicationContext = doNothing 
    } 
} 

हालांकि इस वजह grailsApplication.getClassForName("SearchableGrailsPlugin") रिटर्न शून्य काम नहीं करता है, शायद क्योंकि इस वर्ग classpath पर जब इस कोड को चलाता नहीं है बूटस्ट्रैप वर्ग में निम्नलिखित कोड का उपयोग कर ऐसा करने की कोशिश की। क्या कोई अन्य तरीका है कि मैं इस प्लगइन को अक्षम कर सकता हूं?

उत्तर

4

मैं प्लगइन निष्क्रिय करने के लिए कैसे यकीन नहीं है, तो आपको निम्न के साथ इकाई परीक्षण अधिक सहने बनाने के लिए ... इस अतिरिक्त प्लग-इन इंस्टॉल सक्षम हो सकता है native compass XML

grails के साथ

साथ एक तरह से हो सकता है: grails install-searchable-config

यह आपको एक grails-app/conf/Searchable.groovy फ़ाइल देगा। आप वातावरण को संपादित कर सकते हैं। सबसे कम से कम थोक IndexOnStartup और mirrorChanges को अक्षम करने के लिए खोज योग्य।

environments { 
test { 
    searchable { 
     // disable bulk index on startup 
     bulkIndexOnStartup = false 
     mirrorChanges = false 

     // use faster in-memory index 
     compassConnection = "ram://test-index" 
    } 
} 
} 
8

मुझे एक समाधान मिला। Config.groovy के लिए निम्न जोड़ें:

environments { 
    test { 
     plugin { 
      excludes = "searchable" 
     } 
    } 
} 
0

परीक्षण का निर्माण है, जो परीक्षण चलाने का उपयोग करता है के लिए एक प्लगइन अक्षम करने के लिए - निम्नलिखित BuildConfig.groovy में संभव है अगर आप अपने प्लगइन वहाँ में शामिल हैं;

environments { 
      development { 
       compile ":searchable:0.6.6" 
      } 
      test { 
      } 
      production { 
       compile ":searchable:0.6.6" 
      } 
     } 
} 

यह, जब परीक्षण लेकिन यह भी एक परीक्षण रिहाई प्रभाव अगर आप इस माहौल का उपयोग UAT विज्ञप्ति के निर्माण के लिए होगा प्लगइन को शामिल करने से निर्माण पर्यावरण बंद हो जाता है।