2009-07-24 11 views
6

Dans mon application Grails, je souhaite empêcher le chargement du plugin Searchable lors de l'exécution de mes tests unitaires. J'ai essayé de faire cela en utilisant le code suivant dans la classe BootstrapDésactiver le plugin 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 
    } 
} 

Cependant, cela ne fonctionne pas parce que grailsApplication.getClassForName("SearchableGrailsPlugin") renvoie Null, probablement parce que cette classe ne sont pas sur le chemin de classe lorsque ce code est exécuté. Y a-t-il un autre moyen de désactiver ce plugin?

Répondre

4

Je ne sais pas comment désactiver le plug-in, il pourrait y avoir un moyen avec native compass XML

Avec Grails, vous pourriez être en mesure de faire des tests unitaires plus supportables avec ce qui suit ... installer ce plugin supplémentaire: grails install-searchable-config

Cela vous donnera un fichier grails-app/conf/Searchable.groovy. Vous pouvez éditer la fermeture environments.test.searchable pour au moins désactiver bulkIndexOnStartup et mirrorChanges.

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

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

J'ai trouvé une solution. Ajoutez ce qui suit Config.groovy:

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

Pour désactiver un plug-in pour la construction de test, qui utilise des tests en cours d'exécution - ce qui suit est possible dans le BuildConfig.groovy si vous incluez là votre plug-in;

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

Ce arrête l'environnement de compilation d'inclure le plug-in lors du test, cependant, ce sera aussi effectuer une version de test si vous utilisez cet environnement pour construire UAT libère.