2009-07-24 17 views
6

En mi aplicación Grails, quiero evitar que el complemento Searchable se cargue al ejecutar mis pruebas unitarias. He intentado hacer esto utilizando el código siguiente en la clase BootstrapDeshabilitar el complemento 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 
    } 
} 

Sin embargo, esto no funciona porque grailsApplication.getClassForName("SearchableGrailsPlugin") vuelve nulo, presumiblemente debido a que esta clase no está en la ruta de clase cuando se ejecuta este código. ¿Hay alguna otra forma en que pueda desactivar este complemento?

Respuesta

4

No estoy seguro de cómo deshabilitar el plugin, puede haber un camino con native compass XML

Con griales que podría ser capaz de hacer las pruebas unitarias más soportable con la siguiente ... instalar este plug-in adicional: griales instalar-búsqueda-config

Esto le dará un archivo griales-app/conf/Searchable.groovy. Puede editar entornos.test.searchable closure para al menos deshabilitar bulkIndexOnStartup y mirrorChanges.

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

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

Encontré una solución. Agregue lo siguiente a Config.groovy:

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

Para desactivar un plugin para la compilación de prueba, que utiliza la realización de pruebas - el siguiente es posible en el BuildConfig.groovy si se incluye el plugin de allí;

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

Esto evita que el entorno de construcción de incluir el plugin cuando se prueba, sin embargo, esto también va a efectuar un lanzamiento de prueba si se utiliza este medio para construir UAT libera.

Cuestiones relacionadas