2009-07-24 2 views
6

In meiner Grails-App möchte ich verhindern, dass das durchsuchbare Plugin geladen wird, wenn ich meine Komponententests ausführe. Ich habe versucht, dies mit dem folgenden Code in der Bootstrap Klasse tatGrails Plug-In deaktivieren

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 
    } 
} 

Allerdings funktioniert das nicht, weil grailsApplication.getClassForName("SearchableGrailsPlugin") gibt null zurück, vermutlich weil diese Klasse nicht auf dem Classpath ist, wenn dieser Code ausgeführt wird. Gibt es eine andere Möglichkeit, das Plugin zu deaktivieren?

Antwort

4

Ich bin nicht sicher, wie das Plugin zu deaktivieren, könnte es eine Art und Weise mit native compass XML

Mit grails werden Sie Unit-Tests erträglicher mit dem folgenden ... Installieren Sie dieses zusätzliche Plugin machen vielleicht in der Lage: Grails install-durchsuchbare-config

Dies wird Ihnen eine Grails-app/conf/Searchable.groovy Datei. Sie können environments.test.searchable closure bearbeiten, um mindestens bulkIndexOnStartup und mirrorChanges zu deaktivieren.

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

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

Ich fand eine Lösung. Hinzufügen nach dem zu Config.groovy:

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

Um ein Plugin für den Test Build zu deaktivieren, die Tests verwendet laufen - ist folgendes möglich im BuildConfig.groovy, wenn Sie Ihr Plugin dort enthalten;

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

Dies stoppt die Build-Umgebung aus, einschließlich das Plugin, wenn jedoch die Prüfung, wird diese Veröffentlichung auch einen Test bewirken, wenn Sie diese Umgebung verwenden UAT Mitteilungen zu bauen.