2009-07-24 3 views
6

В моем приложении Grails я хочу, чтобы плагин Searchable не загружался при выполнении моих модульных тестов. Я пытался сделать это с помощью следующего кода в классе BootstrapОтключить плагин 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") возвращает нулевое значение, предположительно потому, что этот класс не на пути к классам при выполнении этого кода. Есть ли другой способ отключить этот плагин?

ответ

4

Я не уверен, как отключить плагин, может быть способом с native compass XML

С Грааль вы могли бы быть в состоянии сделать модульное тестирование более терпимым следующим ... Установите этот дополнительный плагин: grails install-searchable-config

Это даст вам файл grails-app/conf/Searchable.groovy. Вы можете отредактировать environment.test.searchable замыкание, чтобы по крайней мере отключить bulkIndexOnStartup и 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 релизов.

Смежные вопросы